public void Cancel(int docEntry, Model.EnumObjType objType) { Documents document = GetDIObject(objType); try { if (document.GetByKey(docEntry)) { Documents documentC = document.CreateCancellationDocument(); if (documentC != null) { try { documentC.Add(); } finally { Marshal.ReleaseComObject(documentC); GC.Collect(); } } Controller.ConnectionController.Instance.VerifyBussinesObjectSuccess(); } } finally { Marshal.ReleaseComObject(document); GC.Collect(); } }
private BoObjectTypes GetObjType(Model.EnumObjType objType) { switch (objType) { case Model.EnumObjType.Draft: return(BoObjectTypes.oDrafts); case Model.EnumObjType.Invoice: return(BoObjectTypes.oInvoices); case Model.EnumObjType.SalesOrder: return(BoObjectTypes.oOrders); case Model.EnumObjType.InvoiceReturn: return(BoObjectTypes.oCreditNotes); case Model.EnumObjType.PurchaseOrder: return(BoObjectTypes.oPurchaseOrders); case Model.EnumObjType.PurchaseInvoice: return(BoObjectTypes.oPurchaseInvoices); default: return(BoObjectTypes.oInvoices); } }
public void SetUFItem(int docEntry, Model.EnumObjType objType, Dictionary <int, Dictionary <string, dynamic> > itemUserFields) { Documents document = GetDIObject(objType); try { if (document.GetByKey(docEntry)) { foreach (KeyValuePair <int, Dictionary <string, dynamic> > item in itemUserFields) { document.Lines.SetCurrentLine(item.Key); foreach (KeyValuePair <string, dynamic> userField in item.Value) { document.Lines.UserFields.Fields.Item(userField.Key).Value = userField.Value; } } document.UserFields.Fields.Item("U_DIUpdate").Value = "Y"; document.Update(); Controller.ConnectionController.Instance.VerifyBussinesObjectSuccess(); } } finally { Marshal.ReleaseComObject(document); GC.Collect(); } }
public void InitializeObject(int docEntry, Model.EnumObjType objType, int baseDocEntry, Model.EnumObjType baseObjType) { string xml = string.Empty; DocumentDI documentBaseDI = new DocumentDI(); documentBaseDI.InitializeObject(baseDocEntry, baseObjType); try { xml = documentBaseDI.GetXmlForDI(); } finally { documentBaseDI.FinalizeObject(); } for (int lineNum = 0; lineNum < 100; lineNum++) { string replaceString = string.Format(@"<LineNum>{0}</LineNum>", lineNum); if (xml.IndexOf(replaceString) == -1) { break; } else { string newString = string.Format(@"<LineNum>{0}</LineNum> <BaseType>{1}</BaseType> <BaseEntry>{2}</BaseEntry> <BaseLine>{3}</BaseLine>" , lineNum, (int)objType, baseDocEntry, lineNum); xml = xml.Replace(replaceString, newString); } } xml = xml.Replace("<Object>" + ((int)baseObjType).ToString() + "</Object>", "<Object>" + ((int)objType).ToString() + "</Object>"); xml = xml.Replace("<DocEntry>" + baseDocEntry.ToString() + "</DocEntry>", ""); _businessObject = GetDIObject(objType); if (!_businessObject.GetByKey(docEntry)) { _newObject = true; } _businessObject.UpdateFromXML(xml); if (_newObject) { _businessObject.DocNum = 0; } _businessObjectDraft = GetDIObject(Model.EnumObjType.Draft); _businessObjectDraft.DocObjectCode = GetObjType(objType); }
public Model.DocumentModel Get(int docEntry, Model.EnumObjType objType) { Model.DocumentModel documentModel = new Model.DocumentModel(); documentModel.DocEntry = docEntry; documentModel.ObjType = objType; Documents document = GetDIObject(documentModel.ObjType); try { if (document.GetByKey(documentModel.DocEntry)) { documentModel.CardCode = document.CardCode; documentModel.DocDate = document.DocDate; documentModel.SlpCode = document.SalesPersonCode; int line = 0; for (line = document.Lines.Count - 1; line >= 0; line--) { document.Lines.SetCurrentLine(line); Model.DocumentItemModel documentItemModel = new Model.DocumentItemModel(); documentItemModel.DocEntry = docEntry; documentItemModel.LineNum = line; documentItemModel.ItemCode = document.Lines.ItemCode; documentItemModel.Price = document.Lines.Price; documentItemModel.Quantity = document.Lines.Quantity; documentItemModel.Total = document.Lines.LineTotal; documentItemModel.Discount = document.Lines.DiscountPercent; documentItemModel.Usage = Convert.ToInt32(document.Lines.Usage); for (int userField = 0; userField < document.Lines.UserFields.Fields.Count; userField++) { documentItemModel.UserFields.Add(document.Lines.UserFields.Fields.Item(userField).Name, document.Lines.UserFields.Fields.Item(userField).Value); } documentModel.DocumentItemList.Add(documentItemModel); } for (int userField = 0; userField < document.UserFields.Fields.Count; userField++) { documentModel.UserFields.Add(document.UserFields.Fields.Item(userField).Name, document.UserFields.Fields.Item(userField).Value); } } } finally { Marshal.ReleaseComObject(document); GC.Collect(); } return(documentModel); }
public void InitializeObject(int docEntry, Model.EnumObjType objType) { _businessObject = GetDIObject(objType); _businessObjectDraft = GetDIObject(Model.EnumObjType.Draft); _businessObjectDraft.DocObjectCode = GetObjType(objType); _businessObjectDraft.GetByKey(docEntry); if (!_businessObject.GetByKey(docEntry)) { _newObject = true; } }
public void CopyFrom(int baseDocEntry, Model.EnumObjType objType) { string xml = string.Empty; DocumentDI documentBaseDI = new DocumentDI(); documentBaseDI.InitializeObject(baseDocEntry, objType); try { xml = documentBaseDI.GetXmlForDI(); } finally { documentBaseDI.FinalizeObject(); } for (int lineNum = 0; lineNum < 100; lineNum++) { string replaceString = string.Format(@"<LineNum>{0}</LineNum>", lineNum); if (xml.IndexOf(replaceString) == -1) { break; } else { string newString = string.Format(@"<LineNum>{0}</LineNum> <BaseType>{1}</BaseType> <BaseEntry>{2}</BaseEntry> <BaseLine>{3}</BaseLine>" , lineNum, (int)objType, baseDocEntry, lineNum); xml = xml.Replace(replaceString, newString); } } _businessObject.UpdateFromXML(xml); _businessObjectDraft = GetDIObject(Model.EnumObjType.Draft); _businessObjectDraft.DocObjectCode = GetObjType(objType); }
private Documents GetDIObject(Model.EnumObjType objType) { switch (objType) { case Model.EnumObjType.Invoice: return((Documents)Controller.ConnectionController.Instance.Company.GetBusinessObject(BoObjectTypes.oInvoices)); case Model.EnumObjType.SalesOrder: return((Documents)Controller.ConnectionController.Instance.Company.GetBusinessObject(BoObjectTypes.oOrders)); case Model.EnumObjType.InvoiceReturn: return((Documents)Controller.ConnectionController.Instance.Company.GetBusinessObject(BoObjectTypes.oCreditNotes)); case Model.EnumObjType.PurchaseOrder: return((Documents)Controller.ConnectionController.Instance.Company.GetBusinessObject(BoObjectTypes.oPurchaseOrders)); case Model.EnumObjType.PurchaseInvoice: return((Documents)Controller.ConnectionController.Instance.Company.GetBusinessObject(BoObjectTypes.oPurchaseInvoices)); default: return((Documents)Controller.ConnectionController.Instance.Company.GetBusinessObject(BoObjectTypes.oInvoices)); } }
public int GetDocEntry(int docNum, Model.EnumObjType objType) { return(Controller.ConnectionController.Instance.ExecuteSqlForObject <int>("GetDocEntry", ((int)objType).ToString(), docNum.ToString())); }
public void Save(List <Model.DocumentInstallmentModel> documentInstallmentList) { if (documentInstallmentList.Count() > 0) { int docEntry = documentInstallmentList.First().DocEntry; Model.EnumObjType objType = documentInstallmentList.First().ObjType; Documents document = GetDIObject(objType); try { if (document.GetByKey(docEntry)) { int line = 0; for (line = document.Installments.Count - 1; line >= 0; line--) { document.Installments.SetCurrentLine(line); document.Installments.Delete(); } line = 0; foreach (Model.DocumentInstallmentModel documentInstallmentModel in documentInstallmentList) { if (line > document.Installments.Count - 1) { document.Installments.Add(); } document.Installments.SetCurrentLine(line); document.Installments.DueDate = documentInstallmentModel.DueDate; document.Installments.Percentage = documentInstallmentModel.InstPrcnt; if (document.DocTotalFc > 0) { document.Installments.TotalFC = documentInstallmentModel.InsTotal; } else { document.Installments.Total = documentInstallmentModel.InsTotal; } foreach (KeyValuePair <string, dynamic> userField in documentInstallmentModel.UserFields) { document.Installments.UserFields.Fields.Item(userField.Key).Value = userField.Value; } line++; } document.UserFields.Fields.Item("U_DIUpdate").Value = "Y"; document.Update(); Controller.ConnectionController.Instance.VerifyBussinesObjectSuccess(); } } finally { Marshal.ReleaseComObject(document); GC.Collect(); } } }
private Documents GetDIObject(Model.EnumObjType objType) { return((Documents)Controller.ConnectionController.Instance.Company.GetBusinessObject(GetObjType(objType))); }