public static void entradaAddAsn(Asn oAsn) { IDbTransaction tran = null; try { EntradaMng oMng = new EntradaMng(); tran = GenericDataAccess.BeginTransaction(); foreach (Entrada item in oAsn.PLstEntrada) { oMng.O_Entrada = item; oMng.add(tran); RecepcionCtrl.cortinaTarimaPush(oAsn.PCortinaAsignada, tran); } RecepcionCtrl.cortinaLiberar(oAsn.PCortinaAsignada.Id, tran); ProcessCtrl.asnSetDescargada(oAsn, tran); GenericDataAccess.CommitTransaction(tran); } catch { if (tran != null) { GenericDataAccess.RollbackTransaction(tran); } throw; } }
public DataTable GetDataGrid(string ASNNo, bool istrail) { WarehouseFacade facade = null; if (facade == null) { facade = new WarehouseFacade(DataProvider); } Asn asn = (Asn)facade.GetAsn(ASNNo.Trim().ToUpper()); AsndetailEX[] objs = null; if (!istrail) { objs = facade.QueryASNDetailByAsnNoOrderByCartonno(FormatHelper.PKCapitalFormat(FormatHelper.CleanString(ASNNo))); } else { objs = facade.QueryTrailDetailByAsnNoOrderByCartonno(FormatHelper.PKCapitalFormat(FormatHelper.CleanString(ASNNo))); } //设置DataTable的tableName 否则序列化会报错 DataTable dt = new DataTable("ExampleDataTable"); if (objs != null) { dt.Columns.Add("选择", typeof(string)); dt.Columns.Add("箱号编码", typeof(string)); dt.Columns.Add("鼎桥料号", typeof(string)); dt.Columns.Add("供应商物料", typeof(string)); dt.Columns.Add("管控类型", typeof(string)); dt.Columns.Add("来料数量", typeof(string)); dt.Columns.Add("STLINE ", typeof(string)); for (int i = 0; i < objs.Length; i++) { BenQGuru.eMES.Domain.Warehouse.AsndetailEX Asndetail = (BenQGuru.eMES.Domain.Warehouse.AsndetailEX)objs[i]; string controlType = string.Empty; if (Asndetail.MControlType == "item_control_lot") { controlType = "批次管控"; } if (Asndetail.MControlType == "item_control_keyparts") { controlType = "单件管控"; } if (Asndetail.MControlType == "item_control_nocontrol") { controlType = "不管控"; } dt.Rows.Add(string.Empty, Asndetail.Cartonno, Asndetail.DqmCode, asn.StType == "UB" ? Asndetail.CustmCode : Asndetail.VEndormCode, controlType, Asndetail.Qty, Asndetail.Stline); } } return(dt); }
public void ContentsOfVaryingLengths() { int[] interestingLengths = new int[] { 0, 1, 0x7f, 0x80, 0x81, 0xfe, 0xff, 0x100, 0x101, 0x2000 }; foreach (int length in interestingLengths) { Console.WriteLine("Testing length {0}", length); byte[] encoded = Asn.WriteAsn1Element(new Asn.DataElement(Asn.BerClass.Application, Asn.BerPC.Constructed, Asn.BerTag.BitString, new byte[length])); var element = Asn.ReadAsn1Elements(encoded).Single(); Assert.AreEqual(length, element.Content.Length); } }
public static void asnSetDescargada(Asn oAsn, IDbTransaction tran) { try { AsnMng oMng = new AsnMng() { O_Asn = oAsn }; oMng.setDescargada(tran); } catch { throw; } }
private string asn(HttpContext context) { option = context.Request["opt"].ToString(); //int id_cliente = 0; //string folio_aplicada = string.Empty; //DateTime corte_ini = default(DateTime); //DateTime corte_fin = default(DateTime); Asn o = null; switch (option) { case "sltById": response = JsonConvert.SerializeObject(ProcessCtrl.asnGetAllById(Convert.ToInt32(context.Request["key"]))); break; case "lst": o = new Asn(); List <Asn> lstAsn = ProcessCtrl.asnLst(); foreach (Asn item in lstAsn) { item.PCortinaAsignada = RecepcionCtrl.cortinaGetByAsn(item.Id); if (item.PCortinaAsignada.Id_cortina > 0) { Cortina oCortina = new Cortina() { Id = item.PCortinaAsignada.Id_cortina }; CatalogoCtrl.catalogSelById(oCortina); item.CortinaNombre = oCortina.Nombre; } } response = JsonConvert.SerializeObject(lstAsn); break; case "add": jsonData = new StreamReader(context.Request.InputStream).ReadToEnd(); o = JsonConvert.DeserializeObject <Asn>(jsonData); ProcessCtrl.asnAdd(o); response = JsonConvert.SerializeObject(true); break; default: break; } return(response); }
public static void asnAdd(Asn o) { IDbTransaction tran = null; AsnMng oMng = new AsnMng() { O_Asn = o }; Asn_partidaMng oAPMng = new Asn_partidaMng(); Asn_transporte_selloMng oATSMng = new Asn_transporte_selloMng(); try { tran = GenericDataAccess.BeginTransaction(); string folio = CatalogoCtrl.getFolio(enumTipo.ASN, tran); o.Folio = folio; oMng.add(tran); foreach (Asn_partida item in o.PLstPartida) { item.Id_asn = o.Id; oAPMng.O_Asn_partida = item; oAPMng.add(tran); } foreach (Asn_transporte_sello itemSello in o.PLstTranSello) { itemSello.Id_asn = o.Id; oATSMng.O_Asn_transporte_sellos = itemSello; oATSMng.add(tran); } GenericDataAccess.CommitTransaction(tran); } catch { if (tran != null) { GenericDataAccess.RollbackTransaction(tran); } throw; } }
public Asn ConvertAsn(List <Interchange> interchanges, string userId) { var isa = interchanges[0]; var gs = isa.FunctionGroups.ToList()[0]; var st = gs.Transactions[0]; var bsn = st.Segments.FirstOrDefault(x => x.SegmentId == "BSN"); var dtm = st.Segments.Where(x => x.SegmentId == "DTM").ToList(); var ctt = st.Segments.FirstOrDefault(x => x.SegmentId == "CTT"); var hlOne = st.HLoops.ToList()[0]; var env = ExtractEnv(isa, gs, st); var dtms = ExtractDtms(dtm); var hLoopOne = ExtractHlOne(hlOne); Console.WriteLine(dtms); dtms.ForEach(Console.WriteLine); var asn = new Asn() { AsnEnvelope = env, UserID = userId, BSN01_TransactionSetPurposeCode = bsn != null?bsn.GetElement(1) : null, BSN02_ShipmentIdentifier = bsn != null?bsn.GetElement(2) : null, BSN03_Date = bsn != null?bsn.GetDate8Element(3) : null, BSN04_Time = bsn != null?bsn.GetElement(4) : null, CTT01_NumberOfLineItems = ctt != null?ctt.GetElement(1) : null, CTT02_HashTotal = ctt != null?ctt.GetIntElement(2) : null, CTT03_Weight = ctt != null?ctt.GetIntElement(3) : null, CTT04_UnitOfMeasurement = ctt != null?ctt.GetElement(4) : null, CTT05_Volume = ctt != null?ctt.GetIntElement(5) : null, CTT06_UnitOfMeasurement = ctt != null?ctt.GetElement(6) : null, CTT07_Description = ctt != null?ctt.GetElement(7) : null, AsnDtms = dtms, Shipment = hLoopOne, }; return(asn); }
public void Create(Asn entity) { _unitOfWork.AsnRepository.Add(entity); _unitOfWork.Commit(); }
public void Delete(Asn entity) { _unitOfWork.AsnRepository.Delete(entity); _unitOfWork.Commit(); }
private string autoCreateASNFromCheckoutInfo(string invNo, Pick pick) { try { InvoicesDetail invD = (InvoicesDetail)_InventoryFacade.GetInvoicesDetail(invNo); CARTONINVOICES[] cartos = _warehouseFacade.GetGrossAndWeight(pick.PickNo); string stno = CreateStNO(); Asn asn = new Asn(); asn.Stno = stno; asn.StType = "UB"; asn.CDate = FormatHelper.TODateInt(DateTime.Now); asn.CTime = FormatHelper.TOTimeInt(DateTime.Now); asn.CUser = GetUserCode(); asn.Status = "Release"; asn.Invno = invNo; asn.FacCode = pick.FacCode; if (cartos.Length > 0) { asn.Gross_weight = (decimal)cartos[0].GROSS_WEIGHT; asn.Volume = cartos[0].VOLUME; } asn.StorageCode = invD.StorageCode ?? " "; asn.MaintainUser = GetUserCode(); asn.MaintainTime = FormatHelper.TOTimeInt(DateTime.Now); asn.MaintainDate = FormatHelper.TODateInt(DateTime.Now); CartonInvDetailMaterial[] cartonMs = _warehouseFacade.GetCartonInvDetailMaterial(pick.PickNo); MOModel.ItemFacade _itemfacade = new BenQGuru.eMES.MOModel.ItemFacade(this.DataProvider); int i = 1; this.DataProvider.BeginTransaction(); foreach (CartonInvDetailMaterial m in cartonMs) { object materobj = _itemfacade.GetMaterial(m.MCODE); Domain.MOModel.Material mater = materobj as Domain.MOModel.Material; if (materobj == null) { this.DataProvider.RollbackTransaction(); throw new Exception("物料表没有物料:" + m.MCODE); } string custMCode = _warehouseFacade.GetCustMCodeForUB(pick.PickNo, m.DQMCODE); if (mater.MCONTROLTYPE == SAP_CONTROLTYPE.SAP_ITEM_CONTROL_KEYPARTS) { ASNDetail asnd = new ASNDetail(); asnd.ActQty = 0; //asnd.CartonNo = " "; asnd.DQMCode = m.DQMCODE; asnd.Qty = (int)m.QTY; asnd.StLine = i.ToString(); asnd.CustMCode = custMCode; asnd.MCode = m.MCODE; asnd.Status = "Release"; asnd.StNo = stno; asnd.MDesc = mater.MchshortDesc; asnd.Unit = m.UNIT; asnd.CDate = FormatHelper.TODateInt(DateTime.Now); asnd.CTime = FormatHelper.TOTimeInt(DateTime.Now); asnd.CUser = GetUserCode(); asnd.MaintainDate = FormatHelper.TODateInt(DateTime.Now); asnd.MaintainTime = FormatHelper.TOTimeInt(DateTime.Now); asnd.MaintainUser = GetUserCode(); asnd.LotNo = " "; CARTONINVDETAILSN[] sns = _warehouseFacade.GetCartonInvDetailSn(m.CARTONNO, pick.PickNo); List <string> snList = new List <string>(); if (sns.Length > 0) { foreach (CARTONINVDETAILSN sn in sns) { snList.Add(sn.SN); } Asndetail detail = _warehouseFacade.GetFirstCheckInAsnDetail(snList); if (detail != null) { asnd.ProductionDate = detail.Production_Date; asnd.SupplierLotNo = detail.Supplier_lotno; asnd.LotNo = detail.Lotno; asnd.StorageAgeDate = detail.StorageageDate; } } DBDateTime dbTime = FormatHelper.GetNowDBDateTime(this.DataProvider); Asndetailitem detailitem = _warehouseFacade.CreateNewAsndetailitem(); detailitem.CDate = dbTime.DBDate; detailitem.CTime = dbTime.DBTime; detailitem.CUser = this.GetUserCode(); detailitem.MaintainDate = dbTime.DBDate; detailitem.MaintainTime = dbTime.DBTime; detailitem.MaintainUser = this.GetUserCode(); detailitem.Stline = i.ToString(); detailitem.Stno = asn.Stno; detailitem.MCode = asnd.MCode; detailitem.DqmCode = asnd.DQMCode; //查找对应的SAP单 object[] qtyobjs = _warehouseFacade.GetSAPNOandLinebyMCODE(asn.Invno, asnd.MCode, asnd.DQMCode); if (qtyobjs == null) { this.DataProvider.RollbackTransaction(); throw new Exception("入库需求" + asn.Invno + " 没有相关物料" + asnd.MCode + "," + asnd.DQMCode + "或者此行已被取消!"); } decimal sub = asnd.Qty; for (int k = 0; k < qtyobjs.Length; k++) { InvoicesDetail invdetail = qtyobjs[k] as InvoicesDetail; decimal subNeed = 0; object findNeedQTY_old = _warehouseFacade.GetNeedImportQtyOLD(invdetail.InvNo, invdetail.InvLine, asnd.StNo); //找这个invoice行已经导入了多少,和判退多少 Asndetailitem subItemOld = findNeedQTY_old as Asndetailitem; object findNeedQTY_now = _warehouseFacade.GetNeedImportQtyNow(invdetail.InvNo, invdetail.InvLine, asnd.StNo); //找这个invoice行已经导入了多少,和判退多少 Asndetailitem subItemNow = findNeedQTY_now as Asndetailitem; subNeed = invdetail.PlanQty - subItemOld.Qty + (subItemOld.Qty - subItemOld.ReceiveQty) + (subItemOld.ReceiveQty - subItemOld.QcpassQty); subNeed = subNeed - subItemNow.Qty; if (subNeed == 0) { continue; } //如果箱数量大于需求数量差---进行拆分 if (sub > subNeed) { sub = sub - subNeed; // sub是剩余的 detailitem.Qty = subNeed; detailitem.Invline = invdetail.InvLine.ToString(); detailitem.Invno = invdetail.InvNo; detailitem.ActQty = detailitem.Qty; detailitem.QcpassQty = detailitem.Qty; detailitem.ReceiveQty = detailitem.Qty; _warehouseFacade.AddAsndetailitem(detailitem); } //如果箱单数量小于等于需求数量差--直接填入 else { detailitem.Qty = sub; detailitem.Invline = invdetail.InvLine.ToString(); detailitem.Invno = invdetail.InvNo; detailitem.ActQty = detailitem.Qty; detailitem.QcpassQty = detailitem.Qty; detailitem.ReceiveQty = detailitem.Qty; _warehouseFacade.AddAsndetailitem(detailitem); sub = 0; } if (sub == 0) { break; } } //如果sub>0,说明导入数量过多,报错 if (sub > 0) { this.DataProvider.RollbackTransaction(); throw new Exception("箱单导入数量与需求数量不符!"); } foreach (CARTONINVDETAILSN sn in sns) { Asndetailsn asnSN = new Asndetailsn(); asnSN.CDate = FormatHelper.TODateInt(DateTime.Now); asnSN.CTime = FormatHelper.TOTimeInt(DateTime.Now); asnSN.CUser = GetUserCode(); asnSN.MaintainDate = FormatHelper.TODateInt(DateTime.Now); asnSN.MaintainTime = FormatHelper.TOTimeInt(DateTime.Now); asnSN.MaintainUser = GetUserCode(); asnSN.Sn = sn.SN; asnSN.Stline = i.ToString(); asnSN.Stno = stno; _warehouseFacade.AddAsndetailsn(asnSN); } _InventoryFacade.AddASNDetail(asnd); } else if (mater.MCONTROLTYPE == SAP_CONTROLTYPE.SAP_ITEM_CONTROL_LOT || mater.MCONTROLTYPE == SAP_CONTROLTYPE.SAP_ITEM_CONTROL_NOCONTROL) { ASNDetail asnd = new ASNDetail(); asnd.ActQty = 0; asnd.CustMCode = custMCode; asnd.DQMCode = m.DQMCODE; asnd.Qty = (int)m.QTY; asnd.StLine = i.ToString(); asnd.MCode = m.MCODE; asnd.StNo = stno; asnd.Status = "Release"; asnd.MDesc = mater.MchshortDesc; asnd.Unit = m.UNIT; asnd.CDate = FormatHelper.TODateInt(DateTime.Now); asnd.CTime = FormatHelper.TOTimeInt(DateTime.Now); asnd.CUser = GetUserCode(); asnd.MaintainDate = FormatHelper.TODateInt(DateTime.Now); asnd.MaintainTime = FormatHelper.TOTimeInt(DateTime.Now); asnd.MaintainUser = GetUserCode(); asnd.LotNo = " "; Pickdetailmaterial pickMaterial = (Pickdetailmaterial)_warehouseFacade.GetLotNOInformationFromDQMCODE(m.DQMCODE, pick.PickNo); if (pickMaterial != null) { asnd.ProductionDate = pickMaterial.Production_Date; asnd.SupplierLotNo = pickMaterial.Supplier_lotno; asnd.LotNo = pickMaterial.Lotno; asnd.StorageAgeDate = pickMaterial.StorageageDate; } else { throw new Exception(pick.PickNo + "没有找到检料信息!"); } _InventoryFacade.AddASNDetail(asnd); DBDateTime dbTime = FormatHelper.GetNowDBDateTime(this.DataProvider); Asndetailitem detailitem = _warehouseFacade.CreateNewAsndetailitem(); detailitem.CDate = dbTime.DBDate; detailitem.CTime = dbTime.DBTime; detailitem.CUser = this.GetUserCode(); detailitem.MaintainDate = dbTime.DBDate; detailitem.MaintainTime = dbTime.DBTime; detailitem.MaintainUser = this.GetUserCode(); detailitem.Stline = i.ToString(); detailitem.Stno = asn.Stno; detailitem.MCode = asnd.MCode; detailitem.DqmCode = asnd.DQMCode; //查找对应的SAP单 object[] qtyobjs = _warehouseFacade.GetSAPNOandLinebyMCODE(asn.Invno, asnd.MCode, asnd.DQMCode); if (qtyobjs == null) { this.DataProvider.RollbackTransaction(); throw new Exception("箱单导入数量与需求数量不符!"); } decimal sub = asnd.Qty; for (int k = 0; k < qtyobjs.Length; k++) { InvoicesDetail invdetail = qtyobjs[k] as InvoicesDetail; decimal subNeed = 0; object findNeedQTY_old = _warehouseFacade.GetNeedImportQtyOLD(invdetail.InvNo, invdetail.InvLine, asnd.StNo); //找这个invoice行已经导入了多少,和判退多少 Asndetailitem subItemOld = findNeedQTY_old as Asndetailitem; object findNeedQTY_now = _warehouseFacade.GetNeedImportQtyNow(invdetail.InvNo, invdetail.InvLine, asnd.StNo); //找这个invoice行已经导入了多少,和判退多少 Asndetailitem subItemNow = findNeedQTY_now as Asndetailitem; subNeed = invdetail.PlanQty - subItemOld.Qty + (subItemOld.Qty - subItemOld.ReceiveQty) + (subItemOld.ReceiveQty - subItemOld.QcpassQty); subNeed = subNeed - subItemNow.Qty; if (subNeed == 0) { continue; } //如果箱数量大于需求数量差---进行拆分 if (sub > subNeed) { sub = sub - subNeed; // sub是剩余的 detailitem.Qty = subNeed; detailitem.Invline = invdetail.InvLine.ToString(); detailitem.Invno = invdetail.InvNo; detailitem.ActQty = detailitem.Qty; detailitem.QcpassQty = detailitem.Qty; detailitem.ReceiveQty = detailitem.Qty; _warehouseFacade.AddAsndetailitem(detailitem); } //如果箱单数量小于等于需求数量差--直接填入 else { detailitem.Qty = sub; detailitem.Invline = invdetail.InvLine.ToString(); detailitem.Invno = invdetail.InvNo; detailitem.ActQty = detailitem.Qty; detailitem.QcpassQty = detailitem.Qty; detailitem.ReceiveQty = detailitem.Qty; _warehouseFacade.AddAsndetailitem(detailitem); sub = 0; } if (sub == 0) { break; } } //如果sub>0,说明导入数量过多,报错 if (sub > 0) { this.DataProvider.RollbackTransaction(); throw new Exception("箱单导入数量与需求数量不符!"); } } i++; } _warehouseFacade.AddAsn(asn); WarehouseFacade facade = new WarehouseFacade(base.DataProvider); #region 在invinouttrans表中增加一条数据 //ASN asn = (ASN)domainObject; DBDateTime dbTime1 = FormatHelper.GetNowDBDateTime(this.DataProvider); InvInOutTrans trans = facade.CreateNewInvInOutTrans(); trans.CartonNO = string.Empty; trans.DqMCode = string.Empty; trans.FacCode = asn.FacCode; trans.FromFacCode = asn.FromfacCode; trans.FromStorageCode = asn.FromstorageCode; trans.InvNO = asn.Invno; trans.InvType = asn.StType; trans.LotNo = string.Empty; trans.MaintainDate = dbTime1.DBDate; trans.MaintainTime = dbTime1.DBTime; trans.MaintainUser = this.GetUserCode(); trans.MCode = string.Empty; trans.ProductionDate = 0; trans.Qty = 0; trans.Serial = 0; trans.StorageAgeDate = 0; trans.StorageCode = asn.StorageCode; trans.SupplierLotNo = string.Empty; trans.TransNO = asn.Stno; trans.TransType = "IN"; trans.Unit = string.Empty; trans.ProcessType = "UBCreateASN"; facade.AddInvInOutTrans(trans); #endregion this.DataProvider.CommitTransaction(); return(stno); } catch (Exception ex) { this.DataProvider.RollbackTransaction(); throw ex; } }
private string recepcion(HttpContext context) { option = context.Request["opt"].ToString(); Cortina_disponible oCDisp = new Cortina_disponible(); switch (option) { case "lst": response = JsonConvert.SerializeObject(RecepcionCtrl.cortinaLst()); break; case "cortinaVerificarByUsuario": response = JsonConvert.SerializeObject(RecepcionCtrl.cortinaVerificarByUsuario()); break; case "cortinaDispobleByBodega": List <Cortina> lst = new List <Cortina>(); if (context.Request["pk"] != null) { key = context.Request["pk"].ToString(); lst = RecepcionCtrl.cortinaDispobleByBodega(Convert.ToInt32(key)); } response = JsonConvert.SerializeObject(lst); break; case "cortinaTomar": jsonData = new StreamReader(context.Request.InputStream).ReadToEnd(); oCDisp = JsonConvert.DeserializeObject <Cortina_disponible>(jsonData); RecepcionCtrl.cortinaTomar(oCDisp); response = JsonConvert.SerializeObject(oCDisp); break; case "cortinaLiberar": if (context.Request["pk"] != null) { key = context.Request["pk"].ToString(); RecepcionCtrl.cortinaLiberar(Convert.ToInt32(key)); } response = JsonConvert.SerializeObject(key); break; case "cortinaTarimaPush": jsonData = new StreamReader(context.Request.InputStream).ReadToEnd(); oCDisp = JsonConvert.DeserializeObject <Cortina_disponible>(jsonData); RecepcionCtrl.cortinaTarimaPush(oCDisp); response = JsonConvert.SerializeObject(oCDisp); break; case "importRecepcionData": jsonData = new StreamReader(context.Request.InputStream).ReadToEnd(); RecepcionCtrl.loadCsv(jsonData.Split('\n')); response = JsonConvert.SerializeObject(true); break; case "importRecepcionDataStatus": response = JsonConvert.SerializeObject(RecepcionCtrl.csvProcess()); break; case "importRecepcionDataResultShowed": RecepcionCtrl.ResultShowed(); response = JsonConvert.SerializeObject(true); break; case "entradaAddAsn": jsonData = new StreamReader(context.Request.InputStream).ReadToEnd(); List <Entrada> lstEnt = JsonConvert.DeserializeObject <List <Entrada> >(jsonData); Asn oAsn = ProcessCtrl.asnGetAllById(Convert.ToInt32(context.Request["pk"])); foreach (Entrada itemE in lstEnt) { itemE.Fecha = DateTime.Now; itemE.Mercancia = oAsn.PLstPartida.Find(p => p.PMercancia.Sku == itemE.Sku).PMercancia.Nombre; } oAsn.PLstEntrada = lstEnt; RecepcionCtrl.entradaAddAsn(oAsn); response = JsonConvert.SerializeObject(true); break; //case "add": // jsonData = new StreamReader(context.Request.InputStream).ReadToEnd(); // oCDisp = JsonConvert.DeserializeObject<Cortina>(jsonData); // o.Id = CatalogCtrl.catalogAdd(o); // response = JsonConvert.SerializeObject(o); // break; //case "udt": // jsonData = new StreamReader(context.Request.InputStream).ReadToEnd(); // o = JsonConvert.DeserializeObject<Cortina>(jsonData); // CatalogCtrl.catalogUdt(o); // response = JsonConvert.SerializeObject(o); // break; //case "lst": // List<Cortina> lst = CatalogCtrl.catalogGetAllLst(o).Cast<Cortina>().ToList(); // if (context.Request["pk"] != null) // { // key = context.Request["pk"].ToString(); // lst = lst.FindAll(p => p.Id_bodega == Convert.ToInt32(key)); // } // response = JsonConvert.SerializeObject(lst); // break; //case "enb": // jsonData = new StreamReader(context.Request.InputStream).ReadToEnd(); // o = JsonConvert.DeserializeObject<Cortina>(jsonData); // CatalogCtrl.catalogEnabled(o); // o.IsActive = true; // response = JsonConvert.SerializeObject(o); // break; //case "dsb": // jsonData = new StreamReader(context.Request.InputStream).ReadToEnd(); // o = JsonConvert.DeserializeObject<Cortina>(jsonData); // CatalogCtrl.catalogDisabled(o); // o.IsActive = false; // response = JsonConvert.SerializeObject(o); // break; default: break; } return(response); }
public string OnShelves(DataTable dt, string cartonNO, string UserCode) { WarehouseFacade facade = null; InventoryFacade _Invenfacade = null; DBDateTime dbTime = FormatHelper.GetNowDBDateTime(DataProvider); object obj = null; if (facade == null) { facade = new WarehouseFacade(DataProvider); } if (_Invenfacade == null) { _Invenfacade = new InventoryFacade(DataProvider); } this.DataProvider.BeginTransaction(); try { string Stno = string.Empty; for (int j = 0; j < dt.Rows.Count; j++) { obj = facade.GetAsndetail(int.Parse(dt.Rows[j]["stline"].ToString()), dt.Rows[j]["stno"].ToString()); if (obj != null) { Stno = (obj as Asndetail).Stno; #region 更新asndetail表 更新actqty和状态 //update actqty and status Asndetail asndetail = obj as Asndetail; asndetail.ActQty = asndetail.QcpassQty; asndetail.Status = ASNDetail_STATUS.ASNDetail_Close; asndetail.MaintainDate = dbTime.DBDate; asndetail.MaintainTime = dbTime.DBTime; asndetail.MaintainUser = UserCode; facade.UpdateAsndetail(asndetail); #endregion #region 更新asndetailitem表 更新 actqty 和更新invoicedetail表,更新actqty object[] itemobjs = facade.GetASNDetailItembyStnoAndStline(asndetail.Stno, asndetail.Stline.ToString()); if (itemobjs != null) { for (int i = 0; i < itemobjs.Length; i++) { Asndetailitem asnitem = itemobjs[i] as Asndetailitem; asnitem.ActQty = asnitem.QcpassQty; asnitem.MaintainDate = dbTime.DBDate; asnitem.MaintainTime = dbTime.DBTime; asnitem.MaintainUser = UserCode; facade.UpdateAsndetailitem(asnitem); object invoiobj = _Invenfacade.GetInvoicesDetail(asnitem.Invno, int.Parse(asnitem.Invline)); InvoicesDetail inv = invoiobj as InvoicesDetail; inv.ActQty += Convert.ToInt32(asnitem.QcpassQty); inv.MaintainDate = dbTime.DBDate; inv.MaintainTime = dbTime.DBTime; inv.MaintainUser = UserCode; _Invenfacade.UpdateInvoicesDetail(inv); } } #endregion //新增数据tblstoragedetail object asnobj = facade.GetAsn(asndetail.Stno); if (asnobj == null) { this.DataProvider.RollbackTransaction(); // WebInfoPublish.Publish(this, "$Error_ASN_NO_DATA", this.languageComponent1); return("ASN 中没有数据:" + asndetail.Stno); } Asn asn = asnobj as Asn; #region 在storagedetail表中增加一条数据 StorageDetail stordetail = _Invenfacade.CreateNewStorageDetail(); stordetail.AvailableQty = asndetail.ActQty; stordetail.CartonNo = asndetail.Cartonno; stordetail.CDate = dbTime.DBDate; stordetail.CTime = dbTime.DBTime; stordetail.CUser = UserCode; stordetail.DQMCode = asndetail.DqmCode; stordetail.FacCode = (asnobj as Asn).FacCode; stordetail.FreezeQty = 0; stordetail.LastStorageAgeDate = dbTime.DBDate; stordetail.LocationCode = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(cartonNO)); stordetail.Lotno = asndetail.Lotno; stordetail.MaintainDate = dbTime.DBDate; stordetail.MaintainTime = dbTime.DBTime; stordetail.MaintainUser = UserCode; stordetail.MCode = asndetail.MCode; stordetail.MDesc = asndetail.MDesc; stordetail.ProductionDate = asndetail.Production_Date; stordetail.ReworkApplyUser = (asnobj as Asn).ReworkapplyUser; stordetail.StorageAgeDate = string.IsNullOrEmpty(asndetail.StorageageDate.ToString()) ? dbTime.DBDate : int.Parse(asndetail.StorageageDate); stordetail.StorageCode = (asnobj as Asn).StorageCode; stordetail.StorageQty = asndetail.ActQty; stordetail.SupplierLotNo = asndetail.Supplier_lotno; stordetail.Unit = asndetail.Unit; _Invenfacade.AddStorageDetail(stordetail); #endregion #region 在StorageDetailSN表中增加数据 //新增数据tblStorageDetailSN object[] snobj = facade.GetASNDetailSNbyStnoandStline(asndetail.Stno, asndetail.Stline.ToString()); if (snobj == null) { this.DataProvider.RollbackTransaction(); // WebInfoPublish.Publish(this, "$Error_ASNDetail_NO_DATA", this.languageComponent1); return("ASNDetail表中没有数据:" + asndetail.Stno + "/" + asndetail.Stline.ToString()); } for (int i = 0; i < snobj.Length; i++) { StorageDetailSN storDetailSN = _Invenfacade.CreateNewStorageDetailSN(); Asndetailsn detailSN = snobj[i] as Asndetailsn; storDetailSN.CartonNo = detailSN.Cartonno; storDetailSN.CDate = dbTime.DBDate; storDetailSN.CTime = dbTime.DBTime; storDetailSN.CUser = UserCode; storDetailSN.MaintainDate = dbTime.DBDate; storDetailSN.MaintainTime = dbTime.DBTime; storDetailSN.MaintainUser = UserCode; storDetailSN.PickBlock = "N"; storDetailSN.SN = detailSN.Sn; _Invenfacade.AddStorageDetailSN(storDetailSN); } #endregion #region 在invinouttrans表中增加一条数据 InvInOutTrans trans = facade.CreateNewInvInOutTrans(); trans.CartonNO = asndetail.Cartonno; trans.DqMCode = asndetail.DqmCode; trans.FacCode = asn.FacCode; trans.FromFacCode = asn.FromfacCode; trans.FromStorageCode = asn.FromstorageCode; trans.InvNO = asn.Invno; trans.InvType = asn.StType; trans.LotNo = asndetail.Lotno; trans.MaintainDate = dbTime.DBDate; trans.MaintainTime = dbTime.DBTime; trans.MaintainUser = UserCode; trans.MCode = asndetail.MCode; trans.ProductionDate = asndetail.Production_Date; trans.Qty = asndetail.ActQty; trans.Serial = 0; trans.StorageAgeDate = int.Parse(asndetail.StorageageDate); trans.StorageCode = asn.StorageCode; trans.SupplierLotNo = asndetail.Supplier_lotno; trans.TransNO = asn.Stno; trans.TransType = "IN"; trans.Unit = asndetail.Unit; facade.AddInvInOutTrans(trans); #endregion } } #region 架完成后,检查这个stno在asndetail中的状态是否都是close,cancel,如果是将asn表的状态更新为close,cancel if (facade.JudgeASNDetailStatus(Stno, ASNDetail_STATUS.ASNDetail_Close)) { object asnobj = facade.GetAsn(Stno); if (asnobj == null) { this.DataProvider.RollbackTransaction(); //WebInfoPublish.Publish(this, "$Error_ASN_NO_DATA", this.languageComponent1); return("ASN 中没有数据:" + Stno); } Asn asn = asnobj as Asn; asn.Status = ASN_STATUS.ASN_Close; asn.MaintainDate = dbTime.DBDate; asn.MaintainTime = dbTime.DBTime; asn.MaintainUser = UserCode; facade.UpdateAsn(asn); } if (facade.JudgeASNDetailStatus(Stno, ASNDetail_STATUS.ASNDetail_Cancel)) { object asnobj = facade.GetAsn(Stno); if (asnobj == null) { this.DataProvider.RollbackTransaction(); //WebInfoPublish.Publish(this, "$Error_ASN_NO_DATA", this.languageComponent1); return("ASN中没有数据:" + Stno); } Asn asn = asnobj as Asn; asn.Status = ASN_STATUS.ASN_Cancel; asn.MaintainDate = dbTime.DBDate; asn.MaintainTime = dbTime.DBTime; asn.MaintainUser = UserCode; facade.UpdateAsn(asn); } #endregion #region 通过入库指令号,查找invno,检查actqty是否等于planqty,如果等于将finishflag=Y object asnobj1 = facade.GetAsn(Stno); if (asnobj1 == null) { this.DataProvider.RollbackTransaction(); //WebInfoPublish.Publish(this, "$Error_ASN_NO_DATA", this.languageComponent1); return("ASN中没有数据:" + Stno); } Asn asn1 = asnobj1 as Asn; if (facade.JudgeInvoiceDetailStatus(asn1.Invno)) { object invobj = _Invenfacade.GetInvoices(asn1.Invno); if (invobj == null) { this.DataProvider.RollbackTransaction(); //WebInfoPublish.Publish(this, "$Error_INV_NO_DATA", this.languageComponent1); return("INV中没有数据:" + asn1.Invno); } Invoices inv = invobj as Invoices; inv.FinishFlag = "Y"; inv.MaintainDate = dbTime.DBDate; inv.MaintainTime = dbTime.DBTime; inv.MaintainUser = UserCode; _Invenfacade.UpdateInvoices(inv); } #endregion this.DataProvider.CommitTransaction(); } catch (Exception ex) { this.DataProvider.RollbackTransaction(); } return("上架成功"); }
public bool FirstCheckWithUser(string[] asns, string userCode, out string message) { try { WarehouseFacade facade = new WarehouseFacade(DataProvider); InventoryFacade facade1 = new InventoryFacade(DataProvider); message = string.Empty; Asn asn = (Asn)facade.GetAsn(asns[0]); if (asn.Direct_flag.ToUpper() == "Y") { message = "该入库指令是供应商直发,不能做以下操作[取消下发][初检][申请IQC]"; return(false); } if (asn.Status == ASNHeadStatus.WaitReceive) { this.DataProvider.BeginTransaction(); string stNo = string.Format("'{0}'", asn.Stno); facade1.UpdateASNStatusByStNo(ASNHeadStatus.Receive, stNo); facade1.UpdateASNDetailStatusByStNo(ASNHeadStatus.Receive, stNo); DBDateTime dbTime1 = FormatHelper.GetNowDBDateTime(this.DataProvider); WarehouseFacade _wa = new WarehouseFacade(DataProvider); InvInOutTrans trans = _wa.CreateNewInvInOutTrans(); trans.CartonNO = string.Empty; trans.DqMCode = " "; trans.FacCode = asn.FacCode; trans.FromFacCode = string.Empty; trans.FromStorageCode = string.Empty; trans.InvNO = asn.Invno; trans.InvType = asn.StType; trans.LotNo = string.Empty; trans.MaintainDate = dbTime1.DBDate; trans.MaintainTime = FormatHelper.TOTimeInt(DateTime.Now); trans.MaintainUser = userCode; trans.MCode = " "; trans.ProductionDate = 0; trans.Qty = 0; trans.Serial = 0; trans.StorageAgeDate = 0; trans.StorageCode = asn.StorageCode; trans.SupplierLotNo = string.Empty; trans.TransNO = asn.Stno; trans.TransType = "IN"; trans.Unit = string.Empty; trans.ProcessType = "RECEIVEBEGIN"; _wa.AddInvInOutTrans(trans); this.DataProvider.CommitTransaction(); message = "初检成功"; return(true); } else if (asn.Status == ASNHeadStatus.Receive) { message = "初检成功"; return(true); } else { message = "状态必须是初见签收中或者待收货!"; return(false); } } catch (Exception ex) { DataProvider.RollbackTransaction(); BenQGuru.eMES.Common.Log.Error(ex.StackTrace); throw ex; } }
public AsnRange6(Asn asn, byte[] from, byte[] to) { Asn = asn; From = from; To = to; }
public async Task CreateAsync(Asn entity) { _unitOfWork.AsnRepository.Add(entity); await _unitOfWork.CommitAsync(); }
protected override DataRow GetGridRow(object obj) { WarehouseFacade _facade = new WarehouseFacade(base.DataProvider); DBDateTime dbDateTime = FormatHelper.GetNowDBDateTime(DataProvider); DataRow row = this.DtSource.NewRow(); Asn asn = (Asn)_facade.GetAsn(((AsndetailEX)obj).Stno); row["BigCartonNO"] = ((AsndetailEX)obj).Cartonbigseq; row["SmallCartonNO"] = ((AsndetailEX)obj).Cartonseq; row["CartonNO"] = ((AsndetailEX)obj).Cartonno; row["DQLotNO"] = ((AsndetailEX)obj).Lotno; if (((AsndetailEX)obj).InitreceiveStatus == "Reject") { row["ASNStatus"] = this.GetStatusName(((AsndetailEX)obj).InitreceiveStatus); } else { row["ASNStatus"] = this.GetStatusName(((AsndetailEX)obj).Status); } row["DQMaterialNo"] = ((AsndetailEX)obj).DqmCode; row["DQMaterialNoDesc"] = ((AsndetailEX)obj).MDesc; row["VendorMCODE"] = asn.StType == "UB" ? ((AsndetailEX)obj).CustmCode : ((AsndetailEX)obj).VEndormCode; row["VendorMCODEDesc"] = ((Asndetail)obj).VEndormCodeDesc; row["ASNQTY"] = ((AsndetailEX)obj).Qty.ToString(); row["ReceiveQTY"] = ((AsndetailEX)obj).ReceiveQty.ToString(); row["ImportQTY"] = ((AsndetailEX)obj).ActQty.ToString(); row["MUOM"] = ((AsndetailEX)obj).Unit; row["ProDate"] = FormatHelper.ToDateString(((AsndetailEX)obj).Production_Date); row["VendorLotNo"] = ((AsndetailEX)obj).Supplier_lotno; row["MControlType"] = this.languageComponent1.GetString(((AsndetailEX)obj).MControlType); if (asn != null) { string createTime = asn.CDate.ToString() + " " + FormatHelper.ToTimeString(asn.CTime); row["ASNCreateTime"] = createTime; } BenQGuru.eMES.IQC.IQCFacade iqcFacade = new BenQGuru.eMES.IQC.IQCFacade(base.DataProvider); row["ReformCount"] = iqcFacade.ReformQtyTotalWithStNoLine(((AsndetailEX)obj).Stno, ((AsndetailEX)obj).Stline); row["ReturnCount"] = iqcFacade.ReturnQtyTotalWithStNoLine(((AsndetailEX)obj).Stno, ((AsndetailEX)obj).Stline); string status = ((AsndetailEX)obj).Status; if (status == ASNHeadStatus.Release || status == ASNHeadStatus.WaitReceive || status == ASNHeadStatus.Receive) { row["RejectCount"] = 0; } else { row["RejectCount"] = ((AsndetailEX)obj).Qty - ((AsndetailEX)obj).ReceiveQty; } row["CartonMemo"] = ((AsndetailEX)obj).Remark1; row["stline"] = ((AsndetailEX)obj).Stline.ToString(); string flag = _WarehouseFacade.GetShipToStock(((AsndetailEX)obj).MCode, dbDateTime.DBDate); row["FreeCheckMcode"] = flag; return(row); }
public async Task UpdateAsync(Asn entity) { _unitOfWork.AsnRepository.Edit(entity); await _unitOfWork.CommitAsync(); }
public void Update(Asn entity) { _unitOfWork.AsnRepository.Edit(entity); _unitOfWork.Commit(); }
public AsnRange(Asn asn, uint from, uint to) { Asn = asn; From = from; To = to; }
public static Asn asnGetAllById(int id_asn) { Asn o = new Asn() { Id = id_asn }; try { CatalogoCtrl.catalogSelById(o); Cliente oC = new Cliente() { Id = o.Id_cliente }; CatalogoCtrl.catalogSelById(oC); o.ClienteNombre = oC.Nombre; if (o.Id_bodega != null) { Bodega oB = new Bodega() { Id = (int)o.Id_bodega }; CatalogoCtrl.catalogSelById(oB); o.BodegaNombre = oB.Nombre; } if (o.Id_transporte != null) { Transporte oT = new Transporte() { Id = (int)o.Id_transporte }; CatalogoCtrl.catalogSelById(oT); o.TransporteNombre = oT.Nombre; } if (o.Id_bodega != null) { Bodega oB = new Bodega() { Id = (int)o.Id_bodega }; CatalogoCtrl.catalogSelById(oB); o.BodegaNombre = oB.Nombre; } o.PCortinaAsignada = RecepcionCtrl.cortinaGetByAsn(o.Id); if (o.PCortinaAsignada.Id_cortina > 0) { Cortina oCDisp = new Cortina() { Id = o.PCortinaAsignada.Id_cortina }; CatalogoCtrl.catalogSelById(oCDisp); o.CortinaNombre = oCDisp.Nombre; } o.PLstPartida = ProcessCtrl.AsnPartidaLstByAsn(o.Id); foreach (Asn_partida itemAP in o.PLstPartida) { itemAP.PMercancia = CatalogoCtrl.mercanciaBySkuCliente(itemAP.Sku, o.Id_cliente); } o.PLstTranSello = ProcessCtrl.AsnTranspSelloLstByAsn(o.Id); } catch { throw; } return(o); }
public async Task DeleteAsync(Asn entity) { _unitOfWork.AsnRepository.Delete(entity); await _unitOfWork.CommitAsync(); }