Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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();
            }
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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;
            }
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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));
            }
        }
Esempio n. 9
0
 public int GetDocEntry(int docNum, Model.EnumObjType objType)
 {
     return(Controller.ConnectionController.Instance.ExecuteSqlForObject <int>("GetDocEntry", ((int)objType).ToString(), docNum.ToString()));
 }
Esempio n. 10
0
        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();
                }
            }
        }
Esempio n. 11
0
 private Documents GetDIObject(Model.EnumObjType objType)
 {
     return((Documents)Controller.ConnectionController.Instance.Company.GetBusinessObject(GetObjType(objType)));
 }