| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186 |
- @using System.Web.UI.HtmlControls
- @using Abp.Authorization
- @using IwbZero.Session
- @using ShwasherSys
- @using ShwasherSys.Authorization.Permissions
- @using ShwasherSys.BasicInfo
- @using ShwasherSys.Models.Layout
- @using ShwasherSys.Models.Modal
- @using ShwasherSys.Views.Shared.New.Table
- @{
- /**/
- ViewBag.ActiveMenu = PermissionNames.PagesOrderInfoOrderMg; //The menu item will be active for this page.
- ViewBag.Title = "订单维护";
- bool isCanViewPrice = IsGranted(PermissionNames.PagesOrderInfoOrderMgQueryOrderPrice);
- List<SelectListItem> OrderStatusList = ViewBag.OrderStatus;
- List<SelectListItem> OrderItemStatusList = ViewBag.OrderItemStatus;
- List<Currency> loCurrencies = ViewBag.FromCurrenyId;
- List<CurrencyExchangeRate> loToCNYCurrenyRate = ViewBag.ToCNYCurreny;
- List<SelectListItem> emergencyLevelList = ViewBag.EmergencyLevel;
- List<SelectListItem> productionOrderStatus = ViewBag.ProductionOrderStatus;
- string strCurrencies = "";
- if (loCurrencies != null)
- {
- foreach (var loCurrency in loCurrencies)
- {
- if (loCurrency.Id == "CNY")
- {
- strCurrencies += "<option value=\"" + loCurrency.Id + "\" selected=\"selected\">" + loCurrency.CurrencyName + "</option>";
- }
- else
- {
- strCurrencies += "<option value=\"" + loCurrency.Id + "\">" + loCurrency.CurrencyName + "</option>";
- }
- }
- }
- List<SelectListItem> OrderSaleTypeList = ViewBag.OrderSaleType;
- var searchForm = new SearchFormViewModal(new List<SearchItem>()
- {
- new SearchItem("id", "流水号"),
- new SearchItem("orderDate", "订单日期",FiledType.D,ExpType.Greater),
- new SearchItem("orderDate", "到",FiledType.D,ExpType.LessOrEqual),
- new SearchItem("customerId", "客户编号").SetSearchIcon("query_customer_modal"),
- new SearchItem("stockNo", "客户订单号"),
- new SearchItem("orderStatusId", "状态",FiledType.I,ExpType.Equal).SetSearchItem(OrderStatusList),
- new SearchItem("saleMan", "业务员",showField:"saleManName").SetSearchIcon("query_employee_modal","SearchForm") ,
- }, false);
-
- }
- @section css{
- <link href="~/Content/Plugins/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css" rel="stylesheet" />
- <link href="~/Views/OrderInfo/css/OrderMg.css" rel="stylesheet" />
- <style>
- .store-query > strong {
- width: 70px;
- text-align: right;
- }
- #storeQuantity, #orderQuantity {
- padding: 0 5px;
- color: red;
- }
- .store_box {
- position: absolute;
- z-index: 10001;
- width: 400px;
- background: rgba(209,220,249,.9);
- display: none;
- font-size: 1rem;
- padding: 5px;
- font-family: "iconfont" !important;
- }
- .store_box:before {
- content: "\e616";
- position: absolute;
- top: -12px;
- left: 3px;
- color: rgba(209, 220, 249, .9);
- }
- .store_box .close {
- position: absolute;
- width: 20px;
- height: 20px;
- right: -8px;
- top: -8px;
- color: #000;
- border-radius: 50%;
- border: 2px solid #000;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .tool-rc-group {
- border: 0px solid #ba63d3;
- float: left;
- margin: 0 5px;
- padding-right: 5px;
- border-radius: 5px;
- }
- </style>
- }
- <div class="table-box mr-4 iwb-bootstrap-table">
- @Html.Action("ToolMenu", "Layout", new { pageName = ViewBag.ActiveMenu, searchForm })
- <table id="table"
- data-url="/api/services/app/OrderHeaders/GetAll"
- data-striped="true" data-id-field="id" data-unique-id="id"
- data-method="post"
- data-side-pagination="server"
- data-content-type="application/x-www-form-urlencoded; charset=UTF-8"
- data-cache="false"
- data-pagination="true" data-page-size="30" data-page-number="1" data-page-list="[30,50,100,200]" data-pagination-detail-h-align="right" data-pagination-h-align="left"
- data-query-params="QueryParams"
- data-response-handler="ResponseHandler"
- data-click-to-select="true"
- data-single-select="true"
- data-show-jumpto="true">
- <thead>
- <tr class="row" id="header">
- <th data-field="state" data-checkbox="true"></th>
- <th data-align="center" data-field="id">流水号</th>
- <th data-align="center" data-field="orderStatusName">订单状态</th>
- <th data-align="center" data-field="isLock" data-formatter="IsLockFormatter">是否删除</th>
- <th data-align="center" data-field="customerId">客户编号</th>
- <th data-align="center" data-field="orderDate" data-formatter="DateFormatter">订单日期</th>
- <th data-align="center" data-field="linkName">联系人</th>
- <th data-align="center" data-field="telephone">电话</th>
- <th data-align="center" data-field="saleManName">业务员</th>
- <th data-align="center" data-field="saleTypeName">外销/内销</th>
- @*<th data-align="center" data-formatter="ActionsFormatter"></th>*@
- </tr>
- </thead>
- </table>
- </div>
- <div class="table-box mr-4 iwb-bootstrap-table" id="orderItemInfo" style="display: none;">
- <div class="btn-toolbar row" role="toolbar" aria-label="Toolbar with button groups">
- <div class="col-sm-12 col-lg-12 pull-left" style="padding: 0">
- <div class="btn-group btn-group-sm" id="Tool1" role="group" aria-label="First group">
- @if (PermissionChecker.IsGranted(PermissionNames.PagesOrderInfoOrderMgCreateOrderItem))
- {
- <button type="button" class="btn btn-default btnOrderTool" data-type="_btnCreate" data-url="/api/services/app/OrderItems/Create" onclick="CreateItem()">
- <i class="iconfont icon-add">添加订单明细</i>
- </button>
- }
- @if (PermissionChecker.IsGranted(PermissionNames.PagesOrderInfoOrderMgUpdateOrderItem))
- {
- <button type="button" class="btn btn-default btnOrderTool" data-type="btnUpdate" data-url="/api/services/app/OrderItems/Update" onclick="UpdateItem()">
- <i class="iconfont icon-edit">修改订单明细</i>
- </button>
- }
- @if (PermissionChecker.IsGranted(PermissionNames.PagesOrderInfoOrderMgDeleteOrderItem))
- {
- <button type="button" class="btn btn-default btnOrderTool" data-type="btnDelete" data-url="/api/services/app/OrderItems/Delete" onclick="DeleteItem()">
- <i class="iconfont icon-delete">删除订单明细</i>
- </button>
- }
- </div>
- </div>
- </div>
- <table id="tableOrderItem"
- data-url="/api/services/app/OrderItems/GetAll"
- data-id-field="id" data-unique-id="id"
- data-striped="true" data-click-to-select="true" data-single-select="true"
- data-method="post" data-side-pagination="server" data-content-type="application/x-www-form-urlencoded; charset=UTF-8"
- data-cache="false" data-pagination="true" data-page-size="10" data-page-number="1" data-page-list="[10,30,50,100]"
- data-pagination-h-align="left" data-pagination-detail-h-align="right"
- data-query-params="QueryItemParams" data-response-handler="ResponseHandler" data-show-jumpto="true">
- <thead>
- <tr class="row">
- <th data-field="state" data-checkbox="true"></th>
- <th data-align="center" data-field="id">明细流水号</th>
- <th data-align="center" data-field="productNo">产品编号</th>
- <th data-align="center" data-field="emergencyLevel" data-formatter="EmergencyLevelFormatter">紧急程度</th>
- <th data-align="center" data-field="isLock" data-formatter="IsLockFormatter">是否删除</th>
- <th data-align="center" data-field="quantity">数量</th>
- @if (isCanViewPrice)
- {
- <th data-align="center" data-field="price">含税价格</th>
- <th data-align="center" data-field="afterTaxPrice">不含税价格</th>
- <th data-align="center" data-field="currencyId">货币</th>
- <th data-align="center" data-field="logisticsFee">运费</th>
- <th data-align="center" data-field="moldFee">模具费</th>
- @*<th data-align="center" data-field="currencyPrice">货币价格(含税)</th>*@
- }
- <th data-align="center" data-field="sendDate" data-formatter="DateFormatter">送货时间</th>
- </tr>
- </thead>
- </table>
- </div>
- @section modal{
- <section>
- <!--Main Modal-->
- <div class="modal fade" id="modal" role="dialog" tabindex="-1" aria-labelledby="ModalLabel" aria-hidden="true">
- <div class="modal-dialog modal-dialog-centered" role="document" style="width: 600px">
- <div class="modal-content">
- @Html.Partial("Modals/_ModalHeader", new ModalHeaderViewModel("订单"))
- @{
- var inputs = new List<InputViewModel>
- {
- new InputViewModel("customerId",hide:true),
- new InputViewModel("saleMan",hide:true),
- new InputViewModel("saleManId",hide:true),
- //new InputViewModel("id",displayName:"流水号"),
- new InputViewModel("stockNo",displayName:"客户订单号"),
- new InputViewModel("orderStatusId",InputTypes.List, displayName:"订单状态").SetSelectOptions(OrderStatusList),
- new InputViewModel("orderDate", displayName:"订单日期").SetNotRequired(),
- new InputViewModel("customerName",displayName:"客户名称").SetSearchIcon("query_customer_modal","modal"),
- new InputViewModel("saleType",InputTypes.List, displayName: "外销/内销").SetSelectOptions(OrderSaleTypeList),
- new InputViewModel("customerSendId",InputTypes.List, displayName: "送货地址名称").SetEvents("onchange=ChangeCustomerSend()"),
- new InputViewModel("linkName", displayName: "联系人"),
- new InputViewModel("fax", displayName: "传真").SetNotRequired(),
- new InputViewModel("telephone", displayName: "电话").SetNotRequired(),
- new InputViewModel("sendAdress",displayName:"送货地址"),
- new InputViewModel("saleManName",displayName:"销售人员").SetSearchIcon("query_employee_modal")
- };
- //var specials = new List<SpecialInputModel>();
- }
- @Html.Partial("Modals/_ModalBody", new ModalBodyViewModel(inputs))
- @Html.Partial("Modals/_ModalFooter", "0")
- </div>
- </div>
- </div>
- </section>
- <section>
- @*@Html.Hidden("isForSearch", "0");*@
- @Html.Partial("Modals/Query/_Customer", "customerId|KeyWords-4")
- @Html.Partial("Modals/Query/_Employee", "saleMan|KeyWords-7,saleManName|KeyWords-saleManName-7,saleManId")
- </section>
- <section>
- <!--Main Modal-->
- <div class="modal fade" id="modal_OrderItemEdit" role="dialog" tabindex="-1" aria-labelledby="ModalLabel" aria-hidden="true">
- <div class="modal-dialog modal-dialog-centered" role="document">
- <div class="modal-content" style="width: 680px;">
- @Html.Partial("Modals/_ModalHeader", new ModalHeaderViewModel("订单明细"))
- <div class="modal-body container-fluid" style="padding: 0; padding-top: 15px;">
- <form class="pr-3 pl-3 form-horizontal" style="padding: 0 10px" id="formItem">
- <input type="hidden" name="id" />
- <input type="hidden" id="orderNo" name="orderNo" />
- <input type="hidden" id="orderItemStatusId" name="orderItemStatusId" />
- <input type="hidden" id="orderUnitId" name="orderUnitId" />
- <div class="form-group-sm row">
- <label class="iwb-label col-md-2 control-label iwb-label-required" for="productNo">产品编号</label>
- <div class="col-md-5">
- <div class="input-group">
- <select class="form-control" Required id="productNo" name="productNo" placeholder="请输入..." value="" style="width: 100%;" type="text" onchange="RefreshProductInfo()">
- @*@Html.Raw(ViewBag.CustomerDefaultProducts)*@
- </select>
- <div class="input-group-addon" onclick="ShowModal('query_Product_modal');">
- <i class="iconfont icon-search"></i>
- </div>
- </div>
- </div>
- <div class="col-md-1" style="padding: 0 0">
- <button type="button" class="btn btn-info btn-flat" style="height: 30px; width: 40px;" onclick="showSelectProductDialog()"><i class="iconfont icon-search"></i></button>
- </div>
- <div class="col-md-4" style="padding: 0 5px;margin-top: -6px;">
- <span class="store-query"> <strong>库存量:</strong><span id="storeQuantity">0</span><span>千件</span></span>
- <br>
- <span class="store-query"><strong>被定量:</strong><span id="orderQuantity">0</span><span>千件</span></span>
- <br>
- </div>
- </div>
- <div class="form-group-sm row">
- <label class="iwb-label col-md-2 control-label" for="sendDate">送货时间</label>
- <div class="col-md-4">
- <input class="form-control" id="sendDate" name="sendDate" placeholder="请输入..." value="" style="" type="text">
- </div>
- <label class="iwb-label col-md-2 control-label" for="IsStandard">标准件</label>
- <div class="col-md-4">
- <input class="form-control" style="width: 100%" id="IsStandard" disabled="disabled" name="IsStandard" placeholder="请输入..." value="" type="text">
- </div>
- </div>
- <div class="form-group-sm row">
- <label class="iwb-label col-md-2 control-label iwb-label-required" for="price">货币类型</label>
- <div class="col-md-4">
- <select class="form-control" style="width: 100%" id="currencyId" name="currencyId" placeholder="请输入..." value="" onchange="RefreshCurrency()" type="text">
- @Html.Raw(@strCurrencies);
- </select>
- </div>
- <label class="iwb-label col-md-2 control-label iwb-label-required" for="toCnyRate">当前汇率</label>
- <div class="col-md-4">
- <input class="form-control required number" Required style="width: 100%" id="toCnyRate" name="toCnyRate" placeholder="请输入..." min="0" value="" type="text">
- </div>
- </div>
- <div class="form-group-sm row">
- <label class="iwb-label col-md-2 control-label iwb-label-required" for="price">含税价格</label>
- <div class="col-md-4">
- <input class="form-control required number" Required style="width: 100%" id="price" name="price" placeholder="请输入..." value="" min="0" type="text">
- </div>
- <label class="iwb-label col-md-2 control-label iwb-label-required" for="quantity">数量</label>
- <div class="col-md-4">
- <input class="form-control required number" Required style="width: 100%" id="quantity" name="quantity" placeholder="请输入..." min="0" value="" type="text">
- </div>
- </div>
- <div class="form-group-sm row" id="noTaxDiv">
- <label class="iwb-label col-md-2 control-label iwb-label-required" for="price">不含税价格</label>
- <div class="col-md-4">
- <input class="form-control required number" Required style="width: 100%" id="afterTaxPrice" name="afterTaxPrice" placeholder="请输入..." value="" min="0" type="text">
- </div>
- <div class="col-md-4" style="padding: 6px 25px;">
- <span class="store-query"> <strong>当前税率:</strong><span id="currentTaxRate">@ViewBag.TagRate</span><span>%</span></span>
- <br>
- </div>
- </div>
- <div class="form-group-sm row">
- <label class="iwb-label col-md-2 control-label" for="logisticsFee">运费(含税)</label>
- <div class="col-md-4">
- <input class="form-control number" id="logisticsFee" name="logisticsFee" placeholder="请输入..." value="0" min="0" style="" type="number">
- </div>
- <label class="iwb-label col-md-2 control-label " for="moldFee">模具费(含税)</label>
- <div class="col-md-4">
- <input class="form-control number" id="moldFee" name="moldFee" placeholder="请输入..." value="0" style="" min="0" type="number">
- </div>
- </div>
- <div class="form-group-sm row">
- <label class="iwb-label col-md-2 control-label" for="logisticsFee">运费(不含税)</label>
- <div class="col-md-4">
- <input class="form-control number" id="logisticsFeeAfterTax" name="logisticsFeeAfterTax" placeholder="请输入..." value="0" min="0" style="" type="number">
- </div>
- <label class="iwb-label col-md-2 control-label " for="moldFee">模具费(不含税)</label>
- <div class="col-md-4">
- <input class="form-control number" id="moldFeeAfterTax" name="moldFeeAfterTax" placeholder="请输入..." value="0" style="" min="0" type="number">
- </div>
- </div>
- <div class="form-group-sm row">
- <label class="iwb-label col-md-2 control-label" for="isReport">检验报告</label>
- <div class="col-md-4">
- <select class="form-control" style="width: 100%" id="isReport" name="isReport" placeholder="请输入..." value="" style="" type="text">
- <option value="Y" selected="selected">是</option>
- <option value="N">否</option>
- </select>
- </div>
- <label class="iwb-label col-md-2 control-label" for="isPartSend">部分送货</label>
- <div class="col-md-4">
- <select class="form-control" style="width: 100%" id="isPartSend" name="isPartSend" placeholder="请输入..." value="" style="" type="text">
- <option value="Y" selected="selected">是</option>
- <option value="N">否</option>
- </select>
- </div>
- </div>
- <div class="form-group-sm row">
- <label class="iwb-label col-md-2 control-label" for="Material">材质</label>
- <div class="col-md-4">
- <input class="form-control" id="Material" name="Material" placeholder="请输入..." value="" style="" type="text">
- </div>
- <label class="iwb-label col-md-2 control-label" for="Model">规格</label>
- <div class="col-md-4">
- <input class="form-control" id="Model" name="Model" placeholder="请输入..." value="" style="" type="text">
- </div>
- </div>
- <div class="form-group-sm row">
- <label class="iwb-label col-md-2 control-label" for="SurfaceColor">表色</label>
- <div class="col-md-4">
- <input class="form-control" id="SurfaceColor" name="surfaceColor" placeholder="请输入..." value="" style="" type="text">
- </div>
- <label class="iwb-label col-md-2 control-label" for="Rigidity">硬度</label>
- <div class="col-md-4">
- <input class="form-control" id="Rigidity" name="Rigidity" placeholder="请输入..." value="" style="" type="text">
- </div>
- </div>
- <div class="form-group-sm row">
- <label class="iwb-label col-md-2 control-label" for="ProductName">产品名称</label>
- <div class="col-md-4">
- <input class="form-control" id="ProductName" name="ProductName" placeholder="请输入..." value="" style="" type="text">
- </div>
- <label class="iwb-label col-md-2 control-label" for="partNo">零件号</label>
- <div class="col-md-4">
- <div class="input-group">
- <input class="form-control" id="partNo" name="partNo" placeholder="请输入..." value="" style="" type="text">
- <div class="input-group-addon" onclick="f_QueryProductByPartNo();" title="通过零件号查询对应的产品">
- <i class="iconfont icon-search"></i>
- </div>
- </div>
- </div>
- </div>
- <div class="form-group-sm row">
- <label class="iwb-label col-md-2 control-label" for="wareHouse">送货仓库</label>
- <div class="col-md-4">
- <input class="form-control" id="wareHouse" name="wareHouse" placeholder="请输入..." value="" style="" type="text">
- </div>
- <label class="iwb-label col-md-2 control-label iwb-label-required" for="emergencyLevel">紧急程度</label>
- <div class="col-md-4">
- @*<input class="form-control" id="emergencyLevel" name="emergencyLevel" placeholder="请输入..." value="" style="" type="text">*@
- @Html.DropDownList("emergencyLevel", emergencyLevelList, htmlAttributes: new { @class = "form-control Required", placeholder = "请选择", style = "width: 100%" })
- </div>
- </div>
- <div class="form-group-sm row">
- <label class="iwb-label col-md-2 control-label " for="productHsCode">产品海关号</label>
- <div class="col-md-4">
- <input class="form-control" id="productHsCode" name="productHsCode" placeholder="请输入..." value="" style="" type="text"/>
- </div>
- <label class="iwb-label col-md-2 control-label " for="mHsCode">材料海关号</label>
- <div class="col-md-4">
- <input class="form-control" id="mHsCode" name="mHsCode" disabled="disabled" placeholder="请输入..." value="" style="" type="text"/>
- </div>
- </div>
- <div class="form-group-sm row">
- <label class="iwb-label col-md-2 control-label" for="wareHouse">客户标准名称</label>
- <div class="col-md-4">
- <input class="form-control" id="standardName" name="standardName" placeholder="请输入..." value="" style="" type="text">
- </div>
- <label class="iwb-label col-md-2 control-label " for="orderItemDesc">描述</label>
- <div class="col-md-4">
- <input class="form-control" id="orderItemDesc" name="orderItemDesc" placeholder="请输入..." value="" style="" type="text">
- </div>
- </div>
-
- </form>
- </div>
- @Html.Partial("Modals/_ModalFooter", "0")
- </div>
- </div>
- </div>
- @Html.Partial("Modals/Query/_Product01", "productNo")
- @Html.Partial("_searchInfoByProductNo")
- </section>
- <div class="store_box">
- <div class="close" onclick="f_closeStore_box(this)"><i class="iconfont icon-close"></i></div>
- <table class="table table-striped">
- <tbody>
- <tr>
- <th style="width: 150px">批次号</th>
- <th style="width: 150px">库位</th>
- <th style="width: 150px">库存(千件)</th>
- <th style="width: 150px">可用数量(千件)</th>
- </tr>
- </tbody>
- </table>
- </div>
- }
- @section scripts
- {
- <script src="~/Content/Plugins/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
- <script src="~/Content/Plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"></script>
- @*<script src="~/Views/OrderInfo/js/OrderMg.js"></script>*@
- <script type="text/javascript">
- //cId cStockNo cOrderStatusId cCustomerId cStartDate cEndDate
- var loToCNYCurrenyRate = [];
- var datePickerOpt = {
- language: 'zh-CN',
- format: "yyyy-mm-dd",
- todayBtn: true,
- autoclose: true,
- startView: 2,
- minView: 2,
- maxView: 4
- //showSecond: true,
- //showHours: true,
- //minuteStep: 10
- };
- var itemTable = $("#tableOrderItem");
- $(function() {
- @{
- // List<CurrencyExchangeRate> loToCNYCurrenyRate
- foreach (var currency in loToCNYCurrenyRate ?? new List<CurrencyExchangeRate>())
- {
- <text>
- loToCNYCurrenyRate.push({
- FromCurrencyId: "@currency.FromCurrencyId",
- ExchangeRate: "@currency.ExchangeRate"
- });
- </text>
- }
- }
- //show完毕前执行
- //$("#orderDate").datetimepicker(datePickerOpt).on('show', function (event) {
- // event.preventDefault();
- // event.stopPropagation();
- //}).on('hide',
- // function (event) {
- // event.preventDefault();
- // event.stopPropagation();
- // });
- $("#sendDate").datetimepicker(datePickerOpt).on('show',
- function(event) {
- event.preventDefault();
- event.stopPropagation();
- }).on('hide',
- function(event) {
- event.preventDefault();
- event.stopPropagation();
- });
- $("#KeyWords-2").datetimepicker(datePickerOpt);
- $("#KeyWords-3").datetimepicker(datePickerOpt);
- LoadTable({
- onCheck: ShowOrderItem,
- onUncheck: UnShowOrderItem,
- onLoadSuccess: OnLoadSuccessOrder,
- });
- //LoadQueryCustomerTable();
- var funs = window.funs || { none: function() { console.log("No type"); } };
- funs["btnUpdate"] = function() {
- BtnUpdate({ readonly: "standardName,saleManName", disabled: "saleType" });
- };
- funs["btnCreate1"] = function() {
- abp.ajax({
- url: window.appUrl + 'OrderHeaders/GetNewOrderNo',
- async: true,
- type: "Post",
- contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
- isValidate: false,
- dataType: "json",
- success: function(res) {
- BtnCreate({
- readonly: "id,sendAdress,customerName,saleManName,orderDate ",
- disabled: "orderStatusId,saleType",
- data: { orderStatusId: "2", id: res, orderDate: GetNowFormatDate() }
- });
- //$("#OrderStatusId").val("2").select2();
- }
- });
- }
- funs["btnCreate"] = function () {
- BtnCreate({
- readonly: "sendAdress,customerName,saleManName,orderDate ",
- disabled: "orderStatusId,saleType",
- data: { orderStatusId: "2", orderDate: GetNowFormatDate() }
- });
- }
- funs["btnDelete"] = function(url) {
- var rows = $("#table").bootstrapTable("getSelections");
- if (rows.length === 1) {
- //if (rows[0].orderStatusId === 2) {
- // abp.message.confirm(abp.localization.localize("DeleteConfirmMsg"),
- // abp.localization.localize("DeleteConfirmTitle"),
- // function() {
- // SaveAjax({ url: url, data: { Id: rows[0].id }, isValidate: false, table: $("#table") });
- // });
- //} else {
- // abp.message.warn("非新建的订单不可删除!");
- //}
- abp.message.confirm(abp.localization.localize("DeleteConfirmMsg"),
- abp.localization.localize("DeleteConfirmTitle"),
- function() {
- SaveAjax({ url: url, data: { Id: rows[0].id }, isValidate: false, table: $("#table") });
- });
- } else
- abp.message.warn(abp.localization.localize("ChooseOneToOp"));
- }
- funs["btnShow"] = function(url) {
- BtnShow(url);
- }
- //$("#currencyPrice").off("blur").on("blur",
- // function() {
- // RefreshCurrency();
- // });
- $("#price").off("blur").on("blur",
- function() {
- //var p = $(this).val();
- //var rate = $("#currentTaxRate").text();
- //SaveAjax({
- // url: window.appUrl + `Query/CalcTaxPrice?type=${1}&input=${p}&rate=${rate}`,
- // isValidate: false,
- // isAlert: false,
- // async: false,
- // success: function(res) {
- // $("#afterTaxPrice").val(res);
- // }
- //});
- tranTax(1, $("#price"), $("#afterTaxPrice"));
- });
- $("#afterTaxPrice").off("blur").on("blur",
- function() {
- //var p = $(this).val();
- //var rate = $("#currentTaxRate").text();
- ////var r = (Number(p) * (1 + Number(rate) / 100)).toFixed(3);
- ////$("#price").val(r);
- //SaveAjax({
- // url: window.appUrl + `Query/CalcTaxPrice?type=${2}&input=${p}&rate=${rate}`,
- // isValidate: false,
- // isAlert: false,
- // async: false,
- // success: function(res) {
- // $("#price").val(res);
- // }
- //});
- tranTax(2, $("#afterTaxPrice"), $("#price"));
- });
- $("#logisticsFee").off("blur").on("blur",
- function() {
- tranTax(1, $("#logisticsFee"), $("#logisticsFeeAfterTax"));
- });
- $("#logisticsFeeAfterTax").off("blur").on("blur",
- function () {
- tranTax(2, $("#logisticsFeeAfterTax"), $("#logisticsFee"));
- });
- $("#moldFee").off("blur").on("blur",
- function () {
- tranTax(1, $("#moldFee"), $("#moldFeeAfterTax"));
- });
- $("#moldFeeAfterTax").off("blur").on("blur",
- function () {
- tranTax(2, $("#moldFeeAfterTax"), $("#moldFee"));
- });
- });
- function tranTax(type,sourceDom,targetDom) {
- var p = $(sourceDom).val();
- var rate = $("#currentTaxRate").text();
- if (p && rate) {
- SaveAjax({
- url: window.appUrl + `Query/CalcTaxPrice?type=${type}&input=${p}&rate=${rate}`,
- isValidate: false,
- isAlert: false,
- async: false,
- success: function(res) {
- $(targetDom).val(res);
- }
- });
- } else {
- abp.message.warn('价格不能为空!');
- }
- }
- function RefreshCurrency() {
- var currency = $("#currencyId").val();
- if (!currency) {
- return;
- }
- loToCNYCurrenyRate.forEach(function(v, i) {
- if (currency === v.FromCurrencyId) {
- //var p = $("#currencyPrice").val();
- var rate = v.ExchangeRate;
- //var r = Number(p) * Number(rate);
- $("#toCnyRate").val(rate);
- }
- if (currency !== "CNY") {
- $("#noTaxDiv").hide();
- } else {
- $("#noTaxDiv").show();
- }
- });
- }
- function BtnShow(url) {
- var rows = config.table.bootstrapTable("getSelections");
- if (rows.length === 1) {
- window.open("@Url.Action("OrderDetail")/" + rows[0].id, "_blank");
- } else
- abp.message.warn(abp.localization.localize("ChooseOneToOp"));
- }
- function ActionsFormatter(v, r) {
- var str = '<span class="table-action" onclick="OrderItemDetail(\'' +
- r.id +
- '\')"><i class="iconfont icon-right"></i>订单明细</span>';
- return str;
- }
- function OrderItemDetail(id) {
- window.location.href = "OrderItemDetail/" + id;
- }
- function Submit_query_customer_modal(row) {
- var $modal = $("#query_customer_modal");
- row = row || $modal.find("table").bootstrapTable("getSelections")[0];
- if (targetDom !== "#modal") {
- $("#KeyWords-4").val(row.id);
- $modal.modal("hide");
- return;
- }
- if (row) {
- $("#customerId").val(row.id);
- $("#customerName").val(row.customerName);
- abp.ajax({
- url: window.appUrl + "CustomerSends/GetCustomerSendDtoByCustomerId",
- async: true,
- type: "Post",
- data: { customerId: row.id },
- contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
- isValidate: false,
- dataType: "json",
- success: function(res) {
- if (res && res.length > 0) {
- $("#customerSendId").empty();
- var options = "";
- $("#saleType").val(row.saleType).select2();
- res.forEach(function(value, index) {
- console.log(value, index);
- if (index === 0) {
- options += '<option value=\"' +
- value.id +
- '\" selected=\"selected\">' +
- value.customerSendName +
- '</option>';
- } else {
- options += '<option value=\"' +
- value.id +
- '\">' +
- value.customerSendName +
- '</option>';
- }
- });
- $("#customerSendId").html(options);
- $("#customerSendId").trigger("change");
- }
- }
- });
- $modal.modal("hide");
- } else
- abp.message.warn(abp.localization.localize("ChooseOneToOp"));
- }
- function ChangeCustomerSend() {
- var customerSendId = $("#customerSendId").val();
- if (!customerSendId) {
- customerSendId = 0;
- }
- abp.ajax({
- url: window.appUrl + "Query/GetCustomerSendInfo",
- async: false,
- type: "Post",
- data: { Id: customerSendId },
- contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
- isValidate: false,
- dataType: "json",
- success: function(res) {
- if (res) {
- $("#linkName").val(res.linkMan);
- $("#fax").val(res.fax);
- $("#telephone").val(res.telephone);
- $("#sendAdress").val(res.sendAdress);
- }
- }
- });
- }
- function OnAllItem(eName, eData, table) {
- //console.log(eName, eData);
- var $table = config.table;
- if (table) {
- if (typeof (table) === "string") {
- $table = $("#" + table);
- } else {
- $table = $(table);
- }
- }
- $table.closest(".table-box").find("#Tool1 .btn[data-type^='btn']")
- .prop('disabled', $table.bootstrapTable('getSelections').length !== 1);
- }
- function OnLoadSuccessOrder(data, table) {
- var $table = config.table;
- if (table) {
- if (typeof (table) === "string") {
- $table = $("#" + table);
- } else {
- $table = $(table);
- }
- }
- $table.find(".bs-checkbox").find("input").addClass("filled-in").after("<label></label");
- _isSearching = false;
- abp.ui.clearBusy();
- setTimeout(function() {
- var alldata = $("#table").bootstrapTable('getData');
- if (alldata.length > 0) {
- $("#table").bootstrapTable('check', 0);
- } else {
- $("#orderItemInfo").css("display", "none");
- }
- },
- 500);
- }
- var checkedOrderNo = "";
- var orderSaleType = 1;
- function ShowOrderItem(row, $element) {
- $("#table").bootstrapTable('resetView', { height: 500 });
- $("#orderItemInfo").css("display", "block");
- checkedOrderNo = row.id;
- orderSaleType = row.saleType;
- itemTable.bootstrapTable("destroy");
- LoadTable({
- table: itemTable,
- queryParams: QueryItemParams,
- onAll: function(eName, eData) {
- OnAllItem(eName, eData, "tableOrderItem");
- },
- onLoadSuccess: function(data) {
- OnLoadSuccess(data, "tableOrderItem");
- },
- onPostBody: function(data) {
- OnPostBody(data, "tableOrderItem");
- }
- });
- /*if (row.orderStatusId !== 2) {
- $("#orderItemInfo .btnOrderTool").prop('disabled', true);
- } else {
- $("#orderItemInfo .btnOrderTool").prop('disabled', false);
- }*/
- itemTable.bootstrapTable('resetView');
- if (orderSaleType === 2) {
- itemTable.bootstrapTable('hideColumn', "afterTaxPrice");
- }
- initCurrentProduct();
- }
- function UnShowOrderItem(row, $element) {
- $("#orderItemInfo").css("display", "none");
- itemTable.bootstrapTable("destroy");
- $("#table").bootstrapTable('resetView', { height: 800 });
- }
- function QueryItemParams(params) {
- return {
- MaxResultCount: params.limit,
- SkipCount: params.offset,
- sort: params.sort,
- sortOrder: params.order,
- SearchList: [{ KeyWords: checkedOrderNo, KeyField: "OrderNo", FieldType: "0", ExpType: "0" }]
- };
- }
- function Submit_query_Product_modal(row) {
- row = row || $("#query_Product_modal").find("table").bootstrapTable("getSelections")[0];
- if (row) {
- var productNo = row.id;
- //RefreshProductInfo(productNo);
- $("#productNo").append('<option value=\"' + productNo + '\">' + productNo + '</option>');
- $("#productNo").val(productNo);
- $("#productNo").trigger("change");
- $("#query_Product_modal").modal("hide");
- } else {
- abp.message.warn(abp.localization.localize("ChooseOneToOp"));
- }
- }
- function RefreshProductInfo() {
- var productNo = $("#productNo").val();
- if (!productNo) {
- return;
- }
- //abp.ajax({
- // url: window.appUrl + 'Query/GetProductById',
- // data: { Id: productNo },
- // async: true,
- // type: "Post",
- // contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
- // isValidate: false,
- // dataType: "json",
- // success: function (res) {
- // if (res) {
- // $("#ProductName").val(res.productName);
- // $("#Model").val(res.model);
- // $("#Material").val(res.material);
- // $("#SurfaceColor").val(res.surfaceColor);
- // $("#Rigidity").val(res.rigidity);
- // $("#IsStandard").val(res.isStandard === "Y" ? "是" : "否");
- // }
- // }
- //});
- SaveAjax({
- url: window.appUrl + 'Common/GetNewProductInfo?productNo=' + productNo,
- isValidate: false,
- isAlert: false,
- async: false,
- success: function(res) {
- if (res) {
- let pNo = res.id;
- let reg = new RegExp(/^s.{13}/g);
- if (productNo !== pNo && reg.test(pNo)) {
- $("#productNo").append('<option value=\"' + pNo + '\">' + pNo + '</option>');
- abp.message.warn(`此产品已被弃用,系统自动更换新产品!`);
- }
- $("#productNo").val(pNo);
- $('#select2-productNo-container').prop('title', pNo);
- $('#select2-productNo-container').html(pNo);
- $("#ProductName").val(res.productName);
- $("#Model").val(res.model);
- $("#Material").val(res.material);
- $("#SurfaceColor").val(res.surfaceColor);
- $("#Rigidity").val(res.rigidity);
- $("#mHsCode").val(res.materialHsCode);
- $("#IsStandard").val(res.isStandard === "Y" ? "是" : "否");
- RefreshDefaultPartNo(res.partNo);
- }
- }
- });
- RefreshCurrentStore();
- // RefreshDefaultPartNo();
- }
- function RefreshDefaultPartNo(partNo) {
- var productNo = $("#productNo").val();
- $("#partNo").val(partNo);
- SaveAjax({
- url: window.appUrl +
- "OrderItems/GetDefaultPartNoByOrderNo?orderNo=" +
- checkedOrderNo +
- "&productNo=" +
- productNo,
- isValidate: false,
- isAlert: false,
- dataType: "json",
- success: function(res) {
- //console.log(res);
- if (res) {
- $("#partNo").val(res.partNo || "");
- $("#productHsCode").val(res.productHsCode || "");//新增的客户产品海关编码
- }
- }
- });
- }
- function RefreshCurrentStore() {
- var productNo = $("#productNo").val();
- if (!productNo) {
- return;
- }
- SaveAjax({
- url: window.appUrl + "OrderItems/QueryCurrentProductNum",
- data: { Id: productNo },
- isAlert: false,
- isValidate: false,
- success: function(res) {
- if (res) {
- $("#storeQuantity").text(res.canUserQuantity ? Number(res.canUserQuantity) : 0);
- $("#orderQuantity").text(res.bookedQuantity ? Number(res.bookedQuantity) : 0);
- }
- }
- });
- }
- function initCurrentProduct() {
- SaveAjax({
- url: window.appUrl + "Query/GetDefualtProductByOrderNo?orderNo=" + checkedOrderNo,
- isValidate: false,
- isAlert: false,
- dataType: "json",
- success: function(res) {
- //console.log(res);
- if (res) {
- $("#productNo").html(res);
- }
- }
- });
- }
- function f_QueryProductByPartNo() {
- let partNo = $("#partNo").val();
- if (partNo) {
- SaveAjax({
- url: window.appUrl + `Query/GetDefaultProductByPartNo?partNo=${partNo}&orderNo=${checkedOrderNo}`,
- isValidate: false,
- isAlert: false,
- dataType: "json",
- success: function(res) {
- //console.log(res);
- if (res) {
- $("#productNo").val(res).select2();
- RefreshProductInfo();
- }
- }
- });
- }
- }
- function CreateItem() {
- var firstProductNo = $("#productNo").find("option").first().attr("value");
- //console.log('firstProductNo' + firstProductNo);
- var currencyId = "CNY";
- if (orderSaleType === 2) {
- currencyId = "USD";
- }
- BtnCreate({
- modal: $("#modal_OrderItemEdit"),
- url: "/api/services/app/OrderItems/Create",
- readonly: "IsStandard,ProductName,SurfaceColor,Rigidity,Material,Model,mHsCode",
- data: {
- orderNo: checkedOrderNo,
- productNo: firstProductNo,
- orderUnitId: "4",
- currencyId: currencyId,
- emergencyLevel: '@OrderItemEmergencyLevel.Normal',
- logisticsFee: "0",
- moldFee: "0",
- logisticsFeeAfterTax: "0",
- moldFeeAfterTax: "0"
- },
- disabled: "",
- table: itemTable
- });
- $("#isReport").val("Y").select2();
- $("#isPartSend").val("Y").select2();
- }
- function UpdateItem() {
- var rows = itemTable.bootstrapTable("getSelections");
- console.error('---------------------------------------');
- if (rows.length === 1) {
- console.table(rows[0]);
- var defaultOption = {
- modal: $("#modal_OrderItemEdit"),
- modalContent: "",
- modaltitle: window.opUpdate,
- data: rows[0],
- savebtn: null,
- form: null,
- disabled:
- "IsStandard,ProductName,SurfaceColor,Rigidity,Material,Model,SendDate,currencyId,toCnyRate,price,afterTaxPrice,quantity,mHsCode",
- url: "/api/services/app/OrderItems/Update",
- select2: true,
- select2tree: false,
- save: null,
- table: itemTable
- };
- OpenModal(defaultOption);
- $("#productNo").trigger("change");
- } else {
- abp.message.warn(abp.localization.localize("ChooseOneToOp"));
- }
- }
- function DeleteItem() {
- var rows = itemTable.bootstrapTable("getSelections");
- if (rows.length === 1) {
- abp.message.confirm(abp.localization.localize("DeleteConfirmMsg"),
- abp.localization.localize("DeleteConfirmTitle"),
- function() {
- /*SaveAjax({ url: "/api/services/app/OrderItems/Delete", data: { Id: rows[0].id }, isValidate: false});*/
- abp.services.app.orderItems.delete({ Id: rows[0].id },
- {
- async: false,
- timeout: 30000
- }).done(function() {
- RefreshTable("tableOrderItem");
- });
- });
- } else
- abp.message.warn(abp.localization.localize("ChooseOneToOp"));
- }
- function DateFormatter(v, r) {
- var sendDate = new Date(v);
- return '<span style="text-decoration:underline;" >' + sendDate.Format('yyyy-MM-dd') + '</span>';
- }
- function EmergencyLevelFormatter(v, r) {
- var name = $('#hid-emergencyLevel option[value="' + v + '"]').text();
- if (v === '1') {
- return '<span class="label label-success">' + name + '</span>';
- } else {
- return '<span class="label label-danger">' + name + '</span>';
- }
- }
- function IsLockFormatter(v, r) {
- if (v === 'Y') {
- return '<span class="label label-danger">已删除</span>';
- } else {
- return '<span class="label label-success">-</span>';
- }
- }
- function ProductNameFormatter(v, r) {
- return `<span class="label label-default">${v}<a href="#" onclick="f_ShowStoreInfo('${r.id}',this)">(库存)</a></span>`;
- }
- function f_ShowStoreInfo(pno,dom) {
- var $tbody = $(".store_box .table.table-striped > tbody");
- $tbody.find("tr:not(:first)").remove();
- var formatterShowStore = function (res) {
- $(".store_box ").show();
- $(".store_box").off('mouseleave').on('mouseleave',
- function(e) {
- $(".store_box ").hide(1000);
- });
- $(".store_box ").offset({
- left: $(dom).offset().left,
- top: $(dom).offset().top+25
- });
- res.forEach(function(r) {
- var sTr = '<tr>';
- sTr += '<td class="productionOrderNo">' + r.productionOrderNo + '</td>';
- sTr += '<td class="storeLocationNo">' + r.storeLocationNo + '</td>';
- sTr += '<td >' + r.quantity + '</td>';
- var isCanUser = formatNum(Number(r.quantity), Number(r.freezeQuantity), 3);
- sTr += '<td>' + isCanUser + '</td>';
- sTr += '</tr>';
- $tbody.append(sTr);
- });
- }
- SaveAjax({
- url: window.appUrl + `Common/GetProductStoreInfoByProductNo?productNo=${pno}`,
- isValidate: false,
- isAlert: false,
- dataType: "json",
- success: function (res) {
- //console.log(res);
- if (res && res.length > 0) {
- formatterShowStore(res);
- } else {
- $(".store_box ").hide();
- abp.message.warn("未查询到库存或库存为空!");
- }
- }
- });
- }
- function f_closeStore_box(dom) {
- $(".store_box ").hide();
- }
- var formatNum = function(f1, f2, digit) {
- //var m = Math.pow(10, digit);
- //return parseInt(f1*m-f2*m, 10) / m;
- var z = f1 - f2;
- return z.toFixed(digit);
- }
- function CanUserQuantityFormatte(v, r) {
- var count = r.actualQuantity - r.freezeQuantity;
- var str = '<span class="label label-warning">' + count + '</span>';
- if (count > 0) {
- str = '<span class="label label-info">' + count + '</span>';
- } else if (count < 0) {
- str = '<span class="label label-danger">' + count + '</span>';
- }
- return str;
- }
- </script>
- }
- <section style="display: none">
- <select id="hid-type">
- <option value=""></option>
- </select>
- @Html.DropDownList("hid-emergencyLevel", emergencyLevelList);
- @Html.DropDownList("hide-ProductionOrderStatus", productionOrderStatus)
- </section>
|