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); }
//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); } }
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); }
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); }
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); }
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 = ""; }
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); }
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 { } }
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); }
//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); }
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); }
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); }
/// <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); }
//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); } }