コード例 #1
0
        public bool ReverseJournal(string pStrFolio, string pStrTransCode)
        {
            SAPbobsCOM.JournalEntries lObjJournalEntry = null;
            int lIntResult = 0;

            try
            {
                lObjJournalEntry = (SAPbobsCOM.JournalEntries)DIApplication.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);
                lObjJournalEntry.GetByKey(GetTransId(pStrFolio, pStrTransCode));
                //Cancel JournalEntry
                lIntResult = lObjJournalEntry.Cancel();
                if (lIntResult != 0)
                {
                    throw new SapBoException(string.Format("Error code: {0} \nError message: {1}", lIntResult, DIApplication.Company.GetLastErrorDescription()));
                }
            }
            catch (Exception lObjException)
            {
                UIApplication.ShowError(string.Format("CreateAction: {0}", lObjException.Message));
                LogService.WriteError("JournalService (CreateAction): " + lObjException.Message);
                LogService.WriteError(lObjException);
                return(false);
            }
            finally
            {
                MemoryUtility.ReleaseComObject(lObjJournalEntry);
            }
            return(lIntResult == 0 ? true : false);
        }
コード例 #2
0
ファイル: PolicyDI.cs プロジェクト: radtek/UGRS_Full
        //Actualiza asiento como cancelado
        public bool UpdateJournalEntryCancel(string pStrTransID)
        {
            try
            {
                SAPbobsCOM.JournalEntries lObjJournalEntryesCancel = (SAPbobsCOM.JournalEntries)DIApplication.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);
                lObjJournalEntryesCancel.GetByKey(Convert.ToInt32(pStrTransID));
                lObjJournalEntryesCancel.UserFields.Fields.Item("U_GLO_Cancel").Value = "Y";
                lObjJournalEntryesCancel.Reference2 = "";

                if (lObjJournalEntryesCancel.Update() != 0)
                {
                    UIApplication.ShowMessageBox(string.Format("Mensaje: {0} ", DIApplication.Company.GetLastErrorDescription()));
                    LogService.WriteError("PolicyDI (CancelJournalEntry)  Código:" + pStrTransID + " Mensaje:" + DIApplication.Company.GetLastErrorDescription());
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
            catch (Exception ex)
            {
                LogService.WriteError("PolicyDI (UpdateJournalEntryCancel) Código:" + pStrTransID + " Mensaje:" + ex.Message);
                LogService.WriteError(ex);
                return(false);
            }
        }
コード例 #3
0
        public static Result CreateJournalEntry(MergeSalesOrder salesOrder)
        {
            Result result = new Result();

            SAPbobsCOM.JournalEntries myJE = SAP.SAPCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);
            myJE.ReferenceDate = salesOrder.OMSDocDate;
            myJE.UserFields.Fields.Item("U_DocType").Value      = salesOrder.DocType;
            myJE.UserFields.Fields.Item("U_BusinessType").Value = salesOrder.BusinessType;
            myJE.UserFields.Fields.Item("U_PlatformCode").Value = salesOrder.PlatformCode;
            myJE.UserFields.Fields.Item("U_CardCode").Value     = salesOrder.CardCode;
            foreach (var item in salesOrder.MergeSalesOrderItems)
            {
                Tuple <string, string> Accout = BOneCommon.GetAccountByPayMethod(salesOrder.PayMethod);
                myJE.Lines.AccountCode = Accout.Item1;
                myJE.Lines.ShortName   = Accout.Item2;
                myJE.Lines.Debit       = Convert.ToDouble(salesOrder.OrderPaied);
                myJE.Lines.UserFields.Fields.Item("U_PayMethod").Value = salesOrder.PayMethod;
                myJE.Lines.Add();

                if (salesOrder.Freight != 0)
                {
                    myJE.Lines.AccountCode = Accout.Item1;
                    myJE.Lines.ShortName   = Accout.Item2;
                    myJE.Lines.Debit       = Convert.ToDouble(salesOrder.Freight);
                    myJE.Lines.UserFields.Fields.Item("U_PayMethod").Value = salesOrder.PayMethod;
                    myJE.Lines.Add();

                    myJE.Lines.AccountCode = "224101";
                    myJE.Lines.ShortName   = "224101";
                    myJE.Lines.Credit      = Convert.ToDouble(salesOrder.Freight);
                    myJE.Lines.Add();
                }


                myJE.Lines.AccountCode = GetAccountCode(salesOrder.BusinessType, item.ItemCode);
                myJE.Lines.ShortName   = GetShortName(salesOrder.BusinessType, item.ItemCode, salesOrder.CardCode);
                myJE.Lines.Credit      = Convert.ToDouble(salesOrder.OrderPaied);
                myJE.Lines.UserFields.Fields.Item("U_ItemCode").Value = item.ItemCode;
                myJE.Lines.UserFields.Fields.Item("U_Quantity").Value = Convert.ToDouble(item.Quantity);
                myJE.Lines.UserFields.Fields.Item("U_RefDate").Value  = salesOrder.OMSDocDate;
                myJE.Lines.Add();
            }

            int rtCode = myJE.Add();

            if (rtCode != 0)
            {
                result.ResultCode = SAP.SAPCompany.GetLastErrorCode();
                result.Message    = SAP.SAPCompany.GetLastErrorDescription();
            }
            else
            {
                result.ResultCode = 0;
                result.ObjCode    = SAP.SAPCompany.GetNewObjectKey();
                result.Message    = "Create JournalEntry Successfully.";
            }
            return(result);
        }
コード例 #4
0
        private SAPbobsCOM.JournalEntries AddDebitToSeller(SAPbobsCOM.JournalEntries pObjJournalEntry, string pStrFolio, string pStrSellerCardCode, double pDblAmount)
        {
            pObjJournalEntry.Lines.AccountCode   = GetDebitAccount();
            pObjJournalEntry.Lines.ContraAccount = GetCreditAccount();
            pObjJournalEntry.Lines.CostingCode   = GetCostCenter();
            pObjJournalEntry.Lines.Credit        = 0;
            pObjJournalEntry.Lines.Debit         = pDblAmount;
            pObjJournalEntry.Lines.UserFields.Fields.Item("U_GLO_Auxiliary").Value = pStrSellerCardCode;
            pObjJournalEntry.Lines.UserFields.Fields.Item("U_GLO_AuxType").Value   = "1";
            pObjJournalEntry.Lines.UserFields.Fields.Item("U_SU_Folio").Value      = pStrFolio;
            pObjJournalEntry.Lines.Add();

            return(pObjJournalEntry);
        }
コード例 #5
0
        public IList <string> CreateDocument(List <JournalEntryDTO> pLstJournalEntry)
        {
            IList <string> lLstResult = new List <string>();

            pLstJournalEntry = pLstJournalEntry.OrderBy(x => x.Aux).ThenBy(y => y.Account).ToList();
            try
            {
                string lStrDocEntry = string.Empty;
                SAPbobsCOM.JournalEntries lObjJournalEntries = (SAPbobsCOM.JournalEntries)DIApplication.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries); //SAPbobsCOM.BoObjectTypes.oInvoices);
                lObjJournalEntries.TransactionCode = "SUB";
                // lObjJournalEntryes.Memo = "CND" + " " + pStrArea
                lObjJournalEntries.Memo = "Cobro compra-venta de ganado " + pLstJournalEntry[0].Area;

                foreach (JournalEntryDTO lObjJournalEntryDTO in pLstJournalEntry)
                {
                    lObjJournalEntries.Lines.Credit      = Convert.ToDouble(lObjJournalEntryDTO.Credit);
                    lObjJournalEntries.Lines.Debit       = Convert.ToDouble(lObjJournalEntryDTO.Debit);
                    lObjJournalEntries.Lines.AccountCode = lObjJournalEntryDTO.Account;
                    lObjJournalEntries.Lines.CostingCode = lObjJournalEntryDTO.Area;

                    //lObjJournalEntries.Lines.ContraAccount = "";
                    lObjJournalEntries.Lines.UserFields.Fields.Item("U_GLO_Coments").Value  = string.IsNullOrEmpty(lObjJournalEntryDTO.Coments) ? "" : lObjJournalEntryDTO.Coments;
                    lObjJournalEntries.Lines.UserFields.Fields.Item("U_GLO_TypeAux").Value  = "1";
                    lObjJournalEntries.Lines.UserFields.Fields.Item("U_GLO_Auxiliar").Value = lObjJournalEntryDTO.Aux;
                    lObjJournalEntries.Lines.UserFields.Fields.Item("U_SU_Folio").Value     = lObjJournalEntryDTO.AuctionId;
                    lObjJournalEntries.Lines.Add();
                }

                if (lObjJournalEntries.Add() != 0)
                {
                    lLstResult.Add(string.Format("Mensaje: {0} ", DIApplication.Company.GetLastErrorDescription()));
                    LogService.WriteError("JournalEntryDI (CreateDocument) Mensaje: " + DIApplication.Company.GetLastErrorDescription());
                }
                else
                {
                    LogService.WriteSuccess("Asiento creado correctamente con :" + pLstJournalEntry.Count() + " lineas");
                }
                // var ss = pLstPurchaseNotes.GroupBy(x => x.Account, x => x.AF, x => x.Area);
            }
            catch (Exception ex)
            {
                UIApplication.ShowError("PolicyDI (CreateDocument)  Mensaje:" + ex.Message);
                LogService.WriteError("PolicyDI (CreateDocument)  Mensaje:" + ex.Message);
                LogService.WriteError(ex);
                lLstResult.Add(ex.Message);
                // throw new Exception(ex.Message);
            }
            return(lLstResult);
        }
コード例 #6
0
ファイル: HelloWorld.cs プロジェクト: Fun33/code
    public AddJE()
    {
        //*************************************************************
        // set SBO_Application with an initialized application object
        //*************************************************************

        SetApplication();

        //*************************************************************
        // send an "hello world" message
        //*************************************************************

        SAPbobsCOM.JournalEntries oJE = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);
        oJE.DueDate       = "";
        oJE.ReferenceDate = "";
        oJE.TaxDate       = "";

        oJE.TransactionCode = "";
        oJE.Memo            = "";
    }
コード例 #7
0
        public int CreateJournalEntry(string pStrFolio, string pStrSellerCardCode, string pStrBuyerCardCode, double pDblAmount)
        {
            SAPbobsCOM.JournalEntries lObjJournalEntry = null;
            int lIntResult = -1;

            try
            {
                //Get Header
                lObjJournalEntry           = (SAPbobsCOM.JournalEntries)DIApplication.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);
                lObjJournalEntry.DueDate   = DateTime.Today;
                lObjJournalEntry.TaxDate   = DateTime.Today;
                lObjJournalEntry.AutoVAT   = SAPbobsCOM.BoYesNoEnum.tYES;
                lObjJournalEntry.Reference = pStrFolio;
                lObjJournalEntry.Series    = GetSeries();
                lObjJournalEntry.Memo      = "Cierre de subasta " + DateTime.Now.ToShortDateString();

                //Add debit to seller
                lObjJournalEntry = AddDebitToSeller(lObjJournalEntry, pStrFolio, pStrSellerCardCode, pDblAmount);

                //Add credit to the buyer
                lObjJournalEntry = AddCreditToBuyer(lObjJournalEntry, pStrFolio, pStrBuyerCardCode, pDblAmount);

                //Save
                lIntResult = lObjJournalEntry.Add();
            }
            catch (Exception lObjException)
            {
                Console.WriteLine(lObjException.ToString());
            }
            finally
            {
                MemoryUtility.ReleaseComObject(lObjJournalEntry);
            }

            return(lIntResult);
        }
コード例 #8
0
        private void CreateJournalEntry()
        {
            try
            {
                if (cboAcct.Selected == null)
                {
                    UIApplication.ShowError("Seleccione una cuenta");
                    return;
                }

                string lStrBankAccountNum = cboAcct.Selected.Value;
                if (string.IsNullOrEmpty(lStrBankAccountNum))
                {
                    UIApplication.ShowError("Seleccione una cuenta");
                    return;
                }

                string lStrBankAccountCode = mObjTransportServiceFactory.GetBankService().GetBankAccount(lStrBankAccountNum).GLAccount;
                string lStrFolio           = txtFolio.Value;
                string lStrReference       = txtReference.Value;
                string lStrCmsDriverAcct   = new QueryManager().GetValue("U_VALUE", "Name", "TR_ACC_LIQCHOF", "[@UG_Config]");
                string lStrFilePath        = string.Empty;

                if (string.IsNullOrEmpty(lStrFolio))
                {
                    UIApplication.ShowError("Seleccione un folio de comisión");
                    return;
                }

                if (string.IsNullOrEmpty(lStrBankAccountCode))
                {
                    UIApplication.ShowError(string.Format("No se encontró la cuenta para la cuenta bancaria {0}", lStrBankAccountNum));
                    return;
                }

                if (string.IsNullOrEmpty(lStrCmsDriverAcct))
                {
                    UIApplication.ShowError("Agregue un valor en la configuración para el campo TR_ACC_LIQCHOF");
                    return;
                }

                if (dtCommissions.Rows.Count == 0)
                {
                    UIApplication.ShowError("No puede crear la comisión sin líneas");
                    return;
                }

                if (!string.IsNullOrEmpty(mStrFilePath))
                {
                    //mObjTransportServiceFactory.GetAttachmentDI().AttachFile(mStrFilePath);
                    lStrFilePath = AttatchFile(mStrFilePath);
                }

                SAPbobsCOM.JournalEntries lObjJournalEntry = (SAPbobsCOM.JournalEntries)DIApplication.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);
                lObjJournalEntry.TransactionCode = "TRPG";
                lObjJournalEntry.Reference       = lStrFolio;
                lObjJournalEntry.Reference2      = lStrReference;
                lObjJournalEntry.ReferenceDate   = DateTime.Now;
                lObjJournalEntry.TaxDate         = DateTime.Now;
                lObjJournalEntry.DueDate         = DateTime.Now;

                for (int i = 0; i < dtCommissions.Rows.Count; i++)
                {
                    string lStrEmpId     = dtCommissions.GetValue("EmpId", i).ToString();
                    string lStrEmployee  = dtCommissions.GetValue("EmpNm", i).ToString();
                    double lDblImport    = double.Parse(dtCommissions.GetValue("Import", i).ToString());
                    string lStrFolioLine = dtCommissions.GetValue("FolioCms", i).ToString();
                    string lStrAcctLine  = dtCommissions.GetValue("Acct", i).ToString();

                    lObjJournalEntry.Lines.SetCurrentLine(lObjJournalEntry.Lines.Count - 1);
                    lObjJournalEntry.Lines.TaxDate     = DateTime.Now;
                    lObjJournalEntry.Lines.AccountCode = lStrCmsDriverAcct;
                    lObjJournalEntry.Lines.Debit       = lDblImport;
                    lObjJournalEntry.Lines.Credit      = 0;
                    lObjJournalEntry.Lines.CostingCode = "TR_TRANS";
                    lObjJournalEntry.Lines.UserFields.Fields.Item("U_GLO_TypeAux").Value  = "2";
                    lObjJournalEntry.Lines.UserFields.Fields.Item("U_GLO_Auxiliar").Value = lStrEmpId; //code empleado
                    lObjJournalEntry.Lines.UserFields.Fields.Item("U_GLO_CodeMov").Value  = lStrFolio;
                    lObjJournalEntry.Lines.UserFields.Fields.Item("U_GLO_File").Value     = lStrFilePath;

                    lObjJournalEntry.Lines.Add();

                    lObjJournalEntry.Lines.SetCurrentLine(lObjJournalEntry.Lines.Count - 1);
                    lObjJournalEntry.Lines.TaxDate     = DateTime.Now;
                    lObjJournalEntry.Lines.AccountCode = lStrBankAccountCode;
                    lObjJournalEntry.Lines.Debit       = 0;
                    lObjJournalEntry.Lines.Credit      = lDblImport;
                    lObjJournalEntry.Lines.CostingCode = "TR_TRANS";
                    lObjJournalEntry.Lines.UserFields.Fields.Item("U_GLO_TypeAux").Value  = "2";
                    lObjJournalEntry.Lines.UserFields.Fields.Item("U_GLO_Auxiliar").Value = lStrEmpId; //code empleado
                    lObjJournalEntry.Lines.UserFields.Fields.Item("U_GLO_CodeMov").Value  = lStrFolio;
                    lObjJournalEntry.Lines.UserFields.Fields.Item("U_GLO_File").Value     = lStrFilePath;

                    lObjJournalEntry.Lines.Add();
                }

                if (lObjJournalEntry.Add() != 0)
                {
                    string lStrLastError = DIApplication.Company.GetLastErrorDescription();
                    UIApplication.ShowMessageBox(string.Format("Error al generar el asiento de la comisión: {0}", DIApplication.Company.GetLastErrorDescription()));
                }
                else
                {
                    int lIntDocEntry = int.Parse(DIApplication.Company.GetNewObjectKey());

                    LogUtility.WriteSuccess(String.Format("[frmDriversCommissions - CreateJournalEntry] Comisión creada correctamente con el DocEntry {0} para el Folio: {1}", lIntDocEntry, lStrFolio));

                    Commissions lObjCommission = mObjTransportServiceFactory.GetCommissionService().GetCommission(lStrFolio);
                    lObjCommission.HasDriverCms = "Y";

                    if (mObjTransportServiceFactory.GetCommissionService().UpdateCommission(lObjCommission) != 0)
                    {
                        throw new Exception(string.Format("Error al modificar el estatus de la comisión {0}", lStrFolio));
                    }


                    //SaveCommissionsRecords(lIntDocEntry);

                    ClearControls();

                    UIApplication.ShowSuccess(string.Format("Comisión creada correctamente con el número de documento: {0}", lIntDocEntry));
                }
            }
            catch (Exception lObjException)
            {
                LogUtility.WriteError(String.Format("[frmDriversCommissions - CreateJournalEntry] Error al crear el asiento contable: {0}", lObjException.Message));
                throw new Exception(string.Format("Error al crear el asiento contable: {0}", lObjException.Message));
            }
            finally
            {
            }
        }
コード例 #9
0
ファイル: PolicyDI.cs プロジェクト: radtek/UGRS_Full
        public IList <string> CreateDocument(List <PurchaseNote> pLstPurchaseNotes, Vouchers pObjVoucher, TypeEnum.Type pNoteType)
        {
            IList <string> lLstResult = new List <string>();

            try
            {
                string lStrDocEntry = string.Empty;
                SAPbobsCOM.JournalEntries lObjJournalEntryes = (SAPbobsCOM.JournalEntries)DIApplication.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries); //SAPbobsCOM.BoObjectTypes.oInvoices);
                lObjJournalEntryes.TransactionCode = "S/CF";
                lObjJournalEntryes.Memo            = "CND" + " " + pObjVoucher.Area;
                lObjJournalEntryes.ReferenceDate   = pObjVoucher.Date;
                if (pNoteType == TypeEnum.Type.Refund)
                {
                    lObjJournalEntryes.Reference = pObjVoucher.Folio;
                }
                else
                {
                    lObjJournalEntryes.Reference = pObjVoucher.CodeMov;
                }

                var pLstPurchaseNotesAffectable = pLstPurchaseNotes.GroupBy(x => x.Affectable).Select(x => new PurchaseNote()
                {
                    Affectable  = x.First().Affectable,
                    Area        = x.First().Area,
                    CostingCode = x.First().CostingCode,
                    Aux         = x.First().AuxAfectable,
                    AF          = x.First().AF,
                    CodeMov     = x.First().CodeMov,
                    CodeVoucher = x.First().CodeVoucher,
                    Amount      = x.Sum(y => y.Amount) //x.Select(y=> y.Amount).Sum().ToString(),
                }).ToList();

                string lStrAttachPath = mObjPurchaseServiceFactory.GetPurchaseService().GetAttachPath();
                foreach (PurchaseNote lObjNotes in pLstPurchaseNotes)
                {
                    int    lIntAttachement = 0;
                    string lStrAttach      = string.Empty;
                    if (!string.IsNullOrEmpty(lObjNotes.File))
                    {
                        AttachmentDI lObjAttachmentDI = new AttachmentDI();
                        lIntAttachement = lObjAttachmentDI.AttachFile(lObjNotes.File);
                        if (lIntAttachement > 0)
                        {
                            lStrAttach = lStrAttachPath + System.IO.Path.GetFileName(lObjNotes.File);
                        }
                        else
                        {
                            lStrAttach = lObjNotes.File;
                        }
                    }
                    lObjJournalEntryes.Lines.Credit       = 0; // Convert.ToDouble(lObjMovement.Credit);
                    lObjJournalEntryes.Lines.Debit        = lObjNotes.Amount;
                    lObjJournalEntryes.Lines.AccountCode  = lObjNotes.Account;
                    lObjJournalEntryes.Lines.ProjectCode  = lObjNotes.Project;
                    lObjJournalEntryes.Lines.CostingCode  = lObjNotes.Area;
                    lObjJournalEntryes.Lines.CostingCode2 = lObjNotes.AF;
                    lObjJournalEntryes.Lines.CostingCode3 = lObjNotes.AGL;
                    lObjJournalEntryes.Lines.CostingCode4 = lObjNotes.Line;
                    lObjJournalEntryes.Lines.Reference2   = lObjNotes.Folio;
                    lObjJournalEntryes.Lines.LineMemo     = lObjNotes.Provider;
                    lObjJournalEntryes.Lines.UserFields.Fields.Item("U_GLO_Coments").Value  = lObjNotes.Coments;
                    lObjJournalEntryes.Lines.UserFields.Fields.Item("U_GLO_File").Value     = lStrAttach;
                    lObjJournalEntryes.Lines.UserFields.Fields.Item("U_GLO_TypeAux").Value  = "2";
                    lObjJournalEntryes.Lines.UserFields.Fields.Item("U_GLO_Auxiliar").Value = lObjNotes.Aux;
                    lObjJournalEntryes.Lines.UserFields.Fields.Item("U_GLO_CodeMov").Value  = string.IsNullOrEmpty(lObjNotes.CodeMov) ? pObjVoucher.Folio : lObjNotes.CodeMov;


                    if (!string.IsNullOrEmpty(lObjNotes.Aux))
                    {
                        lObjJournalEntryes.Lines.UserFields.Fields.Item("U_GLO_TypeAux").Value = "2";
                    }

                    lObjJournalEntryes.Lines.Add();
                }

                foreach (PurchaseNote lObjAffectable in pLstPurchaseNotesAffectable)
                {
                    lObjJournalEntryes.Lines.AccountCode  = lObjAffectable.Affectable;
                    lObjJournalEntryes.Lines.Credit       = lObjAffectable.Amount;
                    lObjJournalEntryes.Lines.Debit        = 0;
                    lObjJournalEntryes.Lines.CostingCode  = lObjAffectable.CostingCode;
                    lObjJournalEntryes.Lines.CostingCode2 = lObjAffectable.AF;
                    lObjJournalEntryes.Lines.UserFields.Fields.Item("U_GLO_TypeAux").Value  = "2";
                    lObjJournalEntryes.Lines.UserFields.Fields.Item("U_GLO_Auxiliar").Value = lObjAffectable.Aux;
                    lObjJournalEntryes.Lines.UserFields.Fields.Item("U_GLO_CodeMov").Value  = pNoteType == TypeEnum.Type.Refund ? pObjVoucher.Folio : lObjAffectable.CodeMov;

                    /*string.IsNullOrEmpty(lObjAffectable.CodeMov) ?
                     * lObjAffectable.CodeVoucher
                     * :lObjAffectable.CodeMov;*///lObjAffectable.CodeVoucher;
                }

                if (lObjJournalEntryes.Add() != 0)
                {
                    lLstResult.Add(string.Format("Mensaje: {0} ", DIApplication.Company.GetLastErrorDescription()));
                    LogService.WriteError("PolicyDI (CreateDocument)  Código de comprobante:" + pObjVoucher.RowCode + " Mensaje:" + DIApplication.Company.GetLastErrorDescription());
                }
                else
                {
                    LogService.WriteSuccess("Asiento creado correctamente: Código de comprobante:" + pObjVoucher.RowCode);
                    // AddVoucherDetail(pLstPurchaseNotes);
                }
                // var ss = pLstPurchaseNotes.GroupBy(x => x.Account, x => x.AF, x => x.Area);
            }
            catch (Exception ex)
            {
                LogService.WriteError("PolicyDI (CreateDocument) Código de comprobante:" + pObjVoucher.RowCode + " Mensaje:" + ex.Message);
                LogService.WriteError(ex);
                lLstResult.Add(ex.Message);
                // throw new Exception(ex.Message);
            }
            return(lLstResult);
        }
コード例 #10
0
ファイル: PolicyDI.cs プロジェクト: radtek/UGRS_Full
        //Cancela asiento
        public bool CancelJournalEntry(string pStrTransID, string pStrCodeVoucher)
        {
            bool lBolSuccess = false;

            try
            {
                DIApplication.Company.StartTransaction();

                SAPbobsCOM.JournalEntries lObjJournalEntryes = (SAPbobsCOM.JournalEntries)DIApplication.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);

                lObjJournalEntryes.GetByKey(Convert.ToInt32(pStrTransID));
                lObjJournalEntryes.Reference2 = pStrTransID;


                if (lObjJournalEntryes.Update() != 0)
                {
                    UIApplication.ShowMessageBox(string.Format("Mensaje: {0} ", DIApplication.Company.GetLastErrorDescription()));
                    LogService.WriteError("PolicyDI (CancelJournalEntry)  Código:" + pStrTransID + " Mensaje:" + DIApplication.Company.GetLastErrorDescription());
                    lBolSuccess = false;
                }
                else
                if (lObjJournalEntryes.Cancel() != 0)
                {
                    UIApplication.ShowMessageBox(string.Format("Mensaje: {0} ", DIApplication.Company.GetLastErrorDescription()));
                    LogService.WriteError("PolicyDI (CancelJournalEntry)  Código:" + pStrTransID + " Mensaje:" + DIApplication.Company.GetLastErrorDescription());
                    lBolSuccess = false;
                }
                else
                {
                    //if (UpdateJournalEntryCancel(pStrTransID))//solicitado que no se cancelara


                    if (UpdateCancel(pStrTransID, pStrCodeVoucher))
                    {
                        LogService.WriteSuccess("PolicyDI (CancelJournalEntry) Cancelacion realizada correctamente, Código:" + pStrTransID);
                        lBolSuccess = true;
                    }
                }
            }
            catch (Exception ex)
            {
                LogService.WriteError("PolicyDI (CancelJournalEntry) Código:" + pStrTransID + " Mensaje:" + ex.Message);
                LogService.WriteError(ex);
                return(false);
            }
            finally
            {
                try
                {
                    if (lBolSuccess)
                    {
                        DIApplication.Company.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_Commit);
                        UIApplication.ShowMessageBox(string.Format("Documento realizado correctamente"));
                    }
                    else
                    {
                        //mStrCodeVoucher = string.Empty;
                        if (DIApplication.Company.InTransaction)
                        {
                            DIApplication.Company.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_RollBack);
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogService.WriteError("(btnSave_ClickBefore): " + ex.Message);
                    LogService.WriteError(ex);
                }
            }
            return(lBolSuccess);
        }
コード例 #11
0
        public Result CreateJournalEntry(MergeRefund refund)
        {
            Result result = new Result();

            SAPbobsCOM.JournalEntries JE = SAP.SAPCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);
            string refundType            = BOneCommon.GetRefundReason(refund.RefundReason);

            JE.ReferenceDate = refund.OMSDocDate;
            JE.UserFields.Fields.Item("U_DocType").Value      = refund.DocType;
            JE.UserFields.Fields.Item("U_BusinessType").Value = refund.BusinessType;
            JE.UserFields.Fields.Item("U_PlatformCode").Value = refund.PlatformCode;
            JE.UserFields.Fields.Item("U_CardCode").Value     = refund.CardCode;
            JE.UserFields.Fields.Item("U_RefundReason").Value = refund.RefundReason;
            JE.UserFields.Fields.Item("U_RefundType").Value   = refund.RefundType;



            Tuple <string, string> tuple = BOneCommon.GetAccountByPayMethod(refund.PayMethod);

            JE.Lines.AccountCode = tuple.Item1;
            JE.Lines.ShortName   = tuple.Item2;
            JE.Lines.UserFields.Fields.Item("U_PayMethod").Value = refund.PayMethod;
            if (refundType == "N")
            {
                JE.Lines.Debit = Convert.ToDouble(refund.GrossRefund);
            }
            else
            {
                JE.Lines.Credit = Convert.ToDouble(refund.GrossRefund);
            }
            JE.Lines.Add();
            foreach (var item in refund.MergeRefundItems)
            {
                JE.Lines.AccountCode = GetAccountCode(refund.BusinessType, refundType, refund.RefundReason, item.ItemCode);
                JE.Lines.ShortName   = GetShortName(refund.BusinessType, refundType, refund.RefundReason, item.ItemCode, refund.CardCode);
                JE.Lines.UserFields.Fields.Item("U_ItemCode").Value = item.ItemCode;
                JE.Lines.UserFields.Fields.Item("U_Quantity").Value = item.Quantity;
                JE.Lines.UserFields.Fields.Item("U_RefDate").Value  = refund.OMSDocDate;
                if (refundType == "N")
                {
                    JE.Lines.Credit = Convert.ToDouble(item.ItemRefund);
                }
                else
                {
                    JE.Lines.Debit = Convert.ToDouble(item.ItemRefund);
                }
                JE.Lines.Add();
            }
            int rtCode = JE.Add();

            if (rtCode != 0)
            {
                result.ResultCode = -1;
                result.Message    = SAP.SAPCompany.GetLastErrorDescription();
            }
            else
            {
                result.ResultCode = 0;
                result.ObjCode    = SAP.SAPCompany.GetNewObjectKey();
                result.Message    = "create JE document successfully.";
            }

            return(result);
        }
コード例 #12
0
        public bool CreateNewJournal(List <DTO.JournalLineDTO> pLstJournalLines, string pStrInternal, string pStrTransactionCode, string pStrMemo, DateTime pDtmDate)
        {
            SAPbobsCOM.JournalEntries lObjJournalEntry = null;
            int lIntResult;

            try
            {
                //Pupulate header
                lObjJournalEntry                 = (SAPbobsCOM.JournalEntries)DIApplication.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);
                lObjJournalEntry.DueDate         = pDtmDate;
                lObjJournalEntry.TaxDate         = pDtmDate;
                lObjJournalEntry.ReferenceDate   = pDtmDate;
                lObjJournalEntry.AutoVAT         = SAPbobsCOM.BoYesNoEnum.tYES;
                lObjJournalEntry.TransactionCode = pStrTransactionCode; //"TR/F";
                lObjJournalEntry.Reference       = pStrInternal;
                //lObjJournalEntry.Series = GetJournalEntrySeries();
                lObjJournalEntry.Memo = pStrMemo; // "Flete interno" + DateTime.Now.ToShortDateString();

                //Add lines
                if (pLstJournalLines != null && pLstJournalLines.Count > 0)
                {
                    var Debit  = pLstJournalLines.Sum(x => x.Debit);
                    var Credit = pLstJournalLines.Sum(x => x.Credit);
                    foreach (var lObjLine in pLstJournalLines)
                    {
                        lObjJournalEntry.Lines.AccountCode   = lObjLine.AccountCode;
                        lObjJournalEntry.Lines.ContraAccount = lObjLine.ContraAccount;
                        lObjJournalEntry.Lines.CostingCode   = lObjLine.CostingCode;
                        lObjJournalEntry.Lines.CostingCode2  = lObjLine.CostingCode2;
                        lObjJournalEntry.Lines.Credit        = lObjLine.Credit;
                        lObjJournalEntry.Lines.Debit         = lObjLine.Debit;
                        lObjJournalEntry.Lines.Reference1    = string.IsNullOrEmpty(lObjLine.Ref1) ? "" : lObjLine.Ref1;
                        lObjJournalEntry.Lines.Reference2    = string.IsNullOrEmpty(lObjLine.Ref2) ? "" : lObjLine.Ref2;
                        lObjJournalEntry.Lines.UserFields.Fields.Item("U_GLO_Auxiliar").Value = string.IsNullOrEmpty(lObjLine.Auxiliar) ? "" : lObjLine.Auxiliar;
                        lObjJournalEntry.Lines.UserFields.Fields.Item("U_GLO_TypeAux").Value  = string.IsNullOrEmpty(lObjLine.TypeAux) ? "" : lObjLine.TypeAux;
                        //lObjJournalEntry.Lines.UserFields.Fields.Item("U_SU_Folio").Value = pObjJournalEntry.Auction.Folio;
                        lObjJournalEntry.Lines.UserFields.Fields.Item("U_GLO_CodeMov").Value = string.IsNullOrEmpty(lObjLine.CodeMov) ? "" : lObjLine.CodeMov;
                        lObjJournalEntry.Lines.UserFields.Fields.Item("U_TR_Paths").Value    = string.IsNullOrEmpty(lObjLine.Paths) ? "" : lObjLine.Paths;
                        lObjJournalEntry.Lines.UserFields.Fields.Item("U_GLO_Coments").Value = string.IsNullOrEmpty(lObjLine.Comment) ? "" : lObjLine.Comment;
                        lObjJournalEntry.Lines.Add();
                    }
                }

                //Handle operation
                lIntResult = lObjJournalEntry.Add();
                if (lIntResult != 0)
                {
                    throw new SapBoException(string.Format("Error code: {0} \nError message: {1}", lIntResult, DIApplication.Company.GetLastErrorDescription()));
                }
            }
            catch (Exception lObjException)
            {
                UIApplication.GetApplication().Forms.ActiveForm.Freeze(false);
                LogService.WriteError("JournalService (CreateAction): " + lObjException.Message);
                LogService.WriteError(lObjException);
                UIApplication.ShowMessageBox(string.Format("CreateAction: {0}", lObjException.Message));
                return(false);
            }
            finally
            {
                MemoryUtility.ReleaseComObject(lObjJournalEntry);
            }
            return(lIntResult == 0 ? true : false);
        }
コード例 #13
0
        /// <summary>
        /// 拆解正数的分录
        /// </summary>
        /// <param name="JournalRelationMap"></param>
        /// <returns></returns>
        public static DocumentSync ApartPositiveJournal(JournalRelationMap JournalRelationMap)
        {
            DocumentSync rt = new DocumentSync();

            rt.DocEntry = JournalRelationMap.DocEntry.ToString();
            try
            {
                SAPbobsCOM.JournalEntries myJE = SAP.SAPCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);
                myJE.ReferenceDate = JournalRelationMap.RefDate;
                myJE.TaxDate       = JournalRelationMap.TaxDate;
                myJE.DueDate       = JournalRelationMap.DueDate;
                myJE.UserFields.Fields.Item("U_TransId").Value = JournalRelationMap.TransId;
                if (!string.IsNullOrEmpty(JournalRelationMap.Creator))
                {
                    myJE.UserFields.Fields.Item("U_Creator").Value = JournalRelationMap.Creator;
                }
                if (!string.IsNullOrEmpty(JournalRelationMap.Approver))
                {
                    myJE.UserFields.Fields.Item("U_Approver").Value = JournalRelationMap.Approver;
                }
                myJE.UserFields.Fields.Item("U_PrintTransId").Value = JournalRelationMap.SerialNumber;

                foreach (var item in JournalRelationMap.JournalRelationMapLines)
                {
                    if (item.Debit > 0 || item.Credit > 0)
                    {
                        myJE.Lines.BPLID        = item.BPLId;
                        myJE.Lines.ShortName    = item.ShorName;
                        myJE.Lines.AccountCode  = item.AcctCode;
                        myJE.Lines.LineMemo     = item.LineMemo;
                        myJE.Lines.CostingCode  = item.ProfitCode;
                        myJE.Lines.CostingCode2 = item.OcrCode2;
                        myJE.Lines.CostingCode3 = item.OcrCode3;
                        myJE.Lines.CostingCode4 = item.OcrCode4;
                        myJE.Lines.CostingCode5 = item.OcrCode5;
                        myJE.Lines.UserFields.Fields.Item("U_TransId").Value = item.TransId;
                        myJE.Lines.UserFields.Fields.Item("U_LineId").Value  = item.LineId;

                        //myJE.Lines.UserFields.Fields.Item("U_PAYCODE").Value = item.PayCode;
                        if (!string.IsNullOrEmpty(item.CardCode))
                        {
                            myJE.Lines.UserFields.Fields.Item("U_CardCode").Value = item.CardCode;
                        }
                        if (!string.IsNullOrEmpty(item.CardName))
                        {
                            myJE.Lines.UserFields.Fields.Item("U_CardName").Value = item.CardName;
                        }
                        //myJE.Lines.UserFields.Fields.Item("U_ERPCARDCODE").Value = item.ERPCardCode;
                        //myJE.Lines.UserFields.Fields.Item("U_ERPBASECARDCODE").Value = item.ERPBaseCardCode;
                        //myJE.Lines.PrimaryFormItems.CashFlowLineItemID = item.
                        if (item.Debit > 0 && item.Credit == 0)
                        {
                            myJE.Lines.Debit = Convert.ToDouble(item.Debit);
                        }
                        if (item.Credit > 0 && item.Debit == 0)
                        {
                            myJE.Lines.Credit = Convert.ToDouble(item.Credit);
                        }
                        myJE.Lines.Add();
                    }
                }
                int rtCode = myJE.Add();
                if (rtCode == 0)
                {
                    rt.SyncResult = "Y";
                    rt.SyncMsg    = "sync successfull";
                }
                else
                {
                    rt.SyncResult  = "N";
                    rt.SyncMsg     = SAP.SAPCompany.GetLastErrorCode() + SAP.SAPCompany.GetLastErrorDescription();
                    rt.SAPDocEntry = SAP.SAPCompany.GetNewObjectKey();
                }
            }
            catch (Exception ex)
            {
                rt.SyncResult = "N";
                rt.SyncMsg    = ex.Message;
            }
            return(rt);
        }
コード例 #14
0
        //Funcion utilizada para enviar el diario a SAP
        private static string funEnviarDiarioSAP(string mError,         //parametro utilizado para obtener el mensaje en caso de error
                                                 int varCabCodigo,      //parametro utilizado para obtener el key del documento
                                                 int varCabNumero,      //parametro que contendra el numero del documento
                                                 int varDocCodigo,      //parametro que contendra el codigo del documento
                                                 int varDetSecuencia,   //parametro que contendra la secuencia del detalle del documento
                                                 string varDocNombre,   //parametro que contendra el nombre del documento
                                                 DateTime varFecha,     //parametro que contendra la fecha del documento
                                                 string varComenDiario, //parametro que contendra el comentario del diario
                                                 string varMovimiento,  //parametro que contendra el movimiento de la cuenta si es debe o haber
                                                 double varValor,       //parametro que contendra el valor del movimiento
                                                 DataRow drItemProducir //parametro que contendra el item a producir
                                                 )
        {
            try
            {
                int    iError = 0;
                string varCodCtaContableWip        = clsGenOpciones.CargarValor("C.Acp.Diario.CtaWip");                                 //Recuperamos el codigo de la cuenta contable WIP
                string varCodCtaContableDesviacion = clsGenOpciones.CargarValor("C.Acp.Diario.CtaDesv");                                //Recuperamos el codigo de la cuenta contable DESVIACION
                string varCodCtaContableDebe       = varMovimiento.Equals("Debe") ? varCodCtaContableWip : varCodCtaContableDesviacion; //Asignamos el codigo de la cuenta que va al debe
                string varCodCtaContableHaber      = varMovimiento.Equals("Debe") ? varCodCtaContableDesviacion : varCodCtaContableWip; //Asignamos el codigo de la cuenta que va al haber

                //Instanciamos en la variable varOJDT el objeto de SAP de diarios contables
                SAPbobsCOM.JournalEntries varOJDT = csConexionSap.objConexionSap.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oJournalEntries);

                //Cargamos informacion de la cabecera del diario contable
                varOJDT.Series        = clsSegDocumento.funRecNumSerieSAPDiario(varDocCodigo);
                varOJDT.ReferenceDate = varFecha;
                varOJDT.DueDate       = varFecha;
                varOJDT.TaxDate       = varFecha;
                varOJDT.Memo          = varDocNombre + "-" + varCabNumero + "-" + varDetSecuencia + " " + varComenDiario;
                varOJDT.Reference3    = varDocNombre + "-" + varCabNumero + "-" + varDetSecuencia;
                varOJDT.UserFields.Fields.Item("U_Ita_sysusuario").Value   = clsVariablesGlobales.varCodUsuario;
                varOJDT.UserFields.Fields.Item("U_Ita_sysfecha").Value     = DateTime.Now.ToString("dd/MM/yyyy HH:mm");
                varOJDT.UserFields.Fields.Item("U_Ita_sysip").Value        = clsVariablesGlobales.varIpMaquina;
                varOJDT.UserFields.Fields.Item("U_Ita_sysdocumento").Value = varDocNombre;
                varOJDT.UserFields.Fields.Item("U_Ita_sysnumero").Value    = varCabNumero + " - " + varDetSecuencia;

                //Cargamos informacion de los detalles del diario contable

                //Informacion del debe
                varOJDT.Lines.SetCurrentLine(0);
                varOJDT.Lines.AccountCode    = varCodCtaContableDebe;
                varOJDT.Lines.Debit          = varValor;
                varOJDT.Lines.Credit         = 0;
                varOJDT.Lines.LineMemo       = varDocNombre + "-" + varCabNumero + "-" + varDetSecuencia + " " + varComenDiario;
                varOJDT.Lines.Reference1     = "";
                varOJDT.Lines.Reference2     = "";
                varOJDT.Lines.ReferenceDate2 = varFecha;
                varOJDT.Lines.TaxDate        = varFecha;
                varOJDT.Lines.DueDate        = varFecha;

                //Informacion del haber
                varOJDT.Lines.Add();
                varOJDT.Lines.SetCurrentLine(1);
                varOJDT.Lines.AccountCode    = varCodCtaContableHaber;
                varOJDT.Lines.Debit          = 0;
                varOJDT.Lines.Credit         = varValor;
                varOJDT.Lines.LineMemo       = varDocNombre + "-" + varCabNumero + "-" + varDetSecuencia + " " + varComenDiario;
                varOJDT.Lines.Reference1     = "";
                varOJDT.Lines.Reference2     = "";
                varOJDT.Lines.ReferenceDate2 = varFecha;
                varOJDT.Lines.TaxDate        = varFecha;
                varOJDT.Lines.DueDate        = varFecha;

                iError = varOJDT.Add();
                if (!iError.Equals(0))
                {
                    csConexionSap.objConexionSap.GetLastError(out iError, out mError);
                    return(mError);
                }
                else
                {
                    int varDocEntrySAPDiario = 0;
                    int.TryParse(csConexionSap.objConexionSap.GetNewObjectKey().ToString(), out varDocEntrySAPDiario);
                    varOJDT.GetByKey(varDocEntrySAPDiario);
                    int varDocNumSAPDiario = varOJDT.Number;

                    //Actualizamos la linea del detalle con la informacion de SAP de la salida de mercancias en la tabla de detalle de actualizacion de costos de formulacion
                    proActSAPDetActCstFormulacion(varDocEntrySAPDiario, varDocNumSAPDiario, varCabCodigo, varDetSecuencia, 3, 0);

                    drItemProducir["DetNumeroSAPDiario"] = varDocNumSAPDiario;
                    drItemProducir.AcceptChanges();
                    return(mError);
                }
            }
            catch (Exception e) { throw new Exception(e.Message); }
        }