Beispiel #1
0
        public IHttpActionResult UpdateItem(Authorizations authorizations)
        {
            //Inicializo mi conexión a SAP
            SAPConnection conncetion = new SAPConnection();

            SAPbobsCOM.Company company = conncetion.OpenConnection();

            SAPbobsCOM.CompanyService          oCompanyService = company.GetCompanyService();
            SAPbobsCOM.ApprovalRequestsService approvalSrv     = oCompanyService.GetBusinessService(SAPbobsCOM.ServiceTypes.ApprovalRequestsService);
            ApprovalRequestParams oParams = approvalSrv.GetDataInterface(ApprovalRequestsServiceDataInterfaces.arsApprovalRequestParams) as ApprovalRequestParams;

            oParams.Code = authorizations.WddCode;
            ApprovalRequest oData = approvalSrv.GetApprovalRequest(oParams);

            //Agregar una autorización
            oData.ApprovalRequestDecisions.Add();
            oData.ApprovalRequestDecisions.Item(0).ApproverUserName = "******";
            oData.ApprovalRequestDecisions.Item(0).ApproverPassword = "******";
            oData.ApprovalRequestDecisions.Item(0).Status           = BoApprovalRequestDecisionEnum.ardApproved;
            oData.ApprovalRequestDecisions.Item(0).Remarks          = authorizations.Remarks;

            //Actualizar la autorización
            approvalSrv.UpdateRequest(oData);
            return(Ok(responseCall));
        }
Beispiel #2
0
        public IHttpActionResult UpdateItems([FromBody] Authorizations authorizations)
        {
            //Inicializo mi conexión a SAP
            SAPConnection conncetion = new SAPConnection();

            SAPbobsCOM.Company company = conncetion.OpenConnection(authorizations.dbname, authorizations.userSap, authorizations.userSapPass);

            SAPbobsCOM.CompanyService          oCompanyService = company.GetCompanyService();
            SAPbobsCOM.ApprovalRequestsService approvalSrv     = oCompanyService.GetBusinessService(SAPbobsCOM.ServiceTypes.ApprovalRequestsService);
            ApprovalRequestParams oParams = approvalSrv.GetDataInterface(ApprovalRequestsServiceDataInterfaces.arsApprovalRequestParams) as ApprovalRequestParams;

            oParams.Code = authorizations.WddCode;
            ApprovalRequest oData = approvalSrv.GetApprovalRequest(oParams);

            //Agregar una autorización
            oData.ApprovalRequestDecisions.Add();
            oData.ApprovalRequestDecisions.Item(0).ApproverUserName = authorizations.userSap;
            oData.ApprovalRequestDecisions.Item(0).ApproverPassword = authorizations.userSapPass;
            //Autorizar
            if (authorizations.Status == "Y")
            {
                oData.ApprovalRequestDecisions.Item(0).Status = BoApprovalRequestDecisionEnum.ardApproved;
            }
            else
            if (authorizations.Status == "N")
            {
                oData.ApprovalRequestDecisions.Item(0).Status = BoApprovalRequestDecisionEnum.ardNotApproved;
            }
            oData.ApprovalRequestDecisions.Item(0).Remarks = authorizations.Remarks;

            //Actualizar la autorización
            approvalSrv.UpdateRequest(oData);
            return(Ok(authorizations));
        }
Beispiel #3
0
        public IHttpActionResult CreateItem(ItemDetails itemDetails)
        {
            //Inicializo mi conexión a SAP
            SAPConnection conncetion = new SAPConnection();

            SAPbobsCOM.Company company = conncetion.OpenConnection();

            SAPbobsCOM.Items oItems;
            oItems          = company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oItems);
            oItems.ItemCode = itemDetails.ItemCode;
            oItems.ItemName = itemDetails.ItemName;
            int status = oItems.Add();

            //Compruebo si el guardado se ha realizado correctamente
            if (status == 0)
            {
                responseCall.RespCode    = "00";
                responseCall.Description = "Guardado correctamente";
            }
            else
            {
                responseCall.RespCode    = "99";
                responseCall.Description = company.GetLastErrorDescription().ToString();
            }
            return(Ok(responseCall));
        }
Beispiel #4
0
        /// <summary>
        /// Create a new business partner
        /// </summary>
        /// <param name="sap">SAP connection</param>
        /// <param name="docDate">Document date</param>
        /// <param name="cardCode">Card name</param>
        /// <param name="items">Sales order items</param>
        /// <returns>Retrieve new object key</returns>
        public int Create(
            SAPConnection sap,
            DateTime docDate,
            string cardCode,
            List <Dictionary <string, string> > items
            )
        {
            IDocuments document = sap.Company.GetBusinessObject(BoObjectTypes.oOrders);

            document.DocDate    = docDate;
            document.DocDueDate = DateTime.Now;
            document.CardCode   = cardCode;

            for (int i = 0; i < items.Count; i++)
            {
                Dictionary <string, string> current = items[i];
                document.Lines.ItemCode  = current["ItemCode"];
                document.Lines.Quantity  = double.Parse(current["Quantity"]);
                document.Lines.UnitPrice = double.Parse(current["Price"]);

                if (i < items.Count - 1)
                {
                    document.Lines.Add();
                }
            }

            sap.CheckResponse(document.Add());
            return(int.Parse(sap.Company.GetNewObjectKey()));
        }
Beispiel #5
0
        private List <HandHeldCounterHold> SAPHandHeldCounterHoldGetLocation(string productCode, string sapProductCode, string warehouseCode, string branchCode)
        {
            List <HandHeldCounterHold> products = new List <HandHeldCounterHold>();

            //Zdd_Get_Material_Master
            using (var sapConnection = new SAPConnection(GlobalContext.SapDestination))
            {
                using (var proxy = new SAPProxy.UWProxy())
                {
                    proxy.Connection = sapConnection;


                    SAPProxy.ZSTRC_MATERIAL_MASTER e_mat_strc = new SAPProxy.ZSTRC_MATERIAL_MASTER();
                    SAPProxy.MEANTable             tb_barcode = new SAPProxy.MEANTable();
                    SAPProxy.ZMM_ASSIGNLOCTable    assign_loc = new SAPProxy.ZMM_ASSIGNLOCTable();
                    SAPProxy.MARDTable             mard       = new SAPProxy.MARDTable();
                    SAPProxy.MARATable             mara       = new SAPProxy.MARATable();
                    SAPProxy.MARMTable             marm       = new SAPProxy.MARMTable();
                    SAPProxy.MLGTTable             mlgt       = new SAPProxy.MLGTTable();

                    proxy.Zdd_Get_Material_Master(sapProductCode
                                                  , out e_mat_strc
                                                  , ref tb_barcode
                                                  , ref assign_loc
                                                  , ref mard
                                                  , ref mara
                                                  , ref marm
                                                  , ref mlgt);

                    assign_loc.SortBy("BIN_CODE", "ASC");
                    //string lastLocation = string.Empty;
                    foreach (SAPProxy.ZMM_ASSIGNLOC item in assign_loc)
                    {
                        if (item.Storage_Loc == warehouseCode) //&& lastLocation != item.Bin_Code)
                        {
                            //item.Unitofmeasure
                            //lastLocation = item.Bin_Code;
                            //var product = ProductLocationGetByProductCode(productCode, warehouseCode, branchCode);
                            var product = ProductInfoGet(branchCode, productCode, item.Unitofmeasure);
                            if (product != null)
                            {
                                products.Add(new HandHeldCounterHold
                                {
                                    Productcode = product.ProductCode,
                                    Productname = product.ProductName,
                                    Location    = item.Bin_Code,
                                    Unitcode    = product.Uom,
                                    Unitname    = product.UomName,
                                    Quantity    = 0
                                });
                            }
                        }
                    }
                }
            }

            return(products);
        }
Beispiel #6
0
        /// <summary>
        /// Transação 05 - Aumenta do valor de um item
        /// </summary>
        private void Trans05()
        {
            var transacoes = TransGenericDAO.GetDadosSL(transType);

            foreach (var transacao in transacoes)
            {
                var Inventory = SAPConnection.GetDocument(SAPConnection.DocsEnum.OIGN);
                // HEADER
                Inventory.DocDate = transacao.DocDate;
                Inventory.TaxDate = transacao.TaxDate;
                Inventory.BPL_IDAssignedToInvoice = transacao.BplId;

                // LINES
                foreach (var line in transacao.Lines)
                {
                    Inventory.Lines.ItemCode      = line.ItemCode;
                    Inventory.Lines.Quantity      = line.Quantity;
                    Inventory.Lines.WarehouseCode = line.WhsCode;
                    Inventory.Lines.UserFields.Fields.Item("U_Lot").Value     = line.UserFields["U_Lot"];
                    Inventory.Lines.UserFields.Fields.Item("U_Quality").Value = line.UserFields["U_Quality"];

                    using (var rs = new MyRecordSet())
                    {
                        rs.DoQuery(Properties.Querys.CustoItem_2, line.ItemCode, line.WhsCode);
                        if (rs.HasNext())
                        {
                            Inventory.Lines.Price = rs.GetFieldValue(0).ToDouble();
                        }
                        else
                        {
                            Inventory.Lines.Price = 0;
                        }
                    }

                    Inventory.Lines.Add();
                }

                //FOOTER
                Inventory.Comments = String.Format("ID {0} - Transação {1}. {2}", transacao.MyValues["Id"].ToInt(), (int)transType, transacao.Comments);
                int res = Inventory.Add();

                if (res != 0)
                {
                    principal.GravaAudit(this.GetType().Name.ToString() + SAPConnection.DI.GetLastErrorDescription().ToString());
                    TransGenericDAO.UpdateStatus(transacao, 'E', SAPConnection.DI.GetLastErrorDescription());
                }
                else
                {
                    transacao.DocNum = int.Parse(MyLibs.v2.sbo.SAPConnection.DI.GetNewObjectKey());
                    TransGenericDAO.UpdateStatus(transacao);
                }
            }

            transacoes.Clear();
            transacoes = null;
        }
Beispiel #7
0
        /// <summary>
        /// Create a new item
        /// </summary>
        /// <param name="sap">SAP connection</param>
        /// <param name="code">Item code</param>
        /// <param name="name">Item name</param>
        /// <returns>Retrieve new object key</returns>
        public string Create(SAPConnection sap, string code, string name)
        {
            IItems partner = sap.Company.GetBusinessObject(BoObjectTypes.oItems);

            partner.ItemCode = code;
            partner.ItemName = name;

            sap.CheckResponse(partner.Add());
            return(sap.Company.GetNewObjectKey());
        }
Beispiel #8
0
        /// <summary>
        /// Cria saída de Produtos acabados.
        /// </summary>
        /// <param name="t08"></param>
        private void NewOIGE(T08Entity t08)
        {
            try
            {
                var Inventory = SAPConnection.GetDocument(SAPConnection.DocsEnum.OIGE);

                // HEADER
                Inventory.DocDate = t08.OWOR_PostDate;
                //Inventory.TaxDate = tn08.OWOR_PostDate;
                Inventory.BPL_IDAssignedToInvoice = 1;
                //Inventory.Lines.Price = 10;
                Inventory.Lines.ItemCode      = "";// tn08.OITM_ItemCode;
                Inventory.Lines.Quantity      = t08.IGN1_Quantity;
                Inventory.Lines.WarehouseCode = t08.OWOR_WareHouse;
                //Inventory.Lines.UserFields.Fields.Item("U_Lot").Value = t08.IGN1_U_Lot;
                Inventory.Lines.BaseEntry = t08.OWOR_DocNum;
                Inventory.Lines.BaseType  = (int)SAPConnection.DocsEnum.OWOR;
                Inventory.Lines.Add();

                //FOOTER
                Inventory.Comments = t08.OWOR_Remarks;

                int res = Inventory.Add();

                if (res != 0)
                {
                    t08.MSG_SAP   = SAPConnection.DI.GetLastErrorDescription();
                    t08.ReadBySAP = 'E';
                    T08DAO.UpdateStatus(t08);

                    principal.GravaAudit(SAPConnection.DI.GetLastErrorDescription().ToString());
                }
                else
                {
                    var docnum = SAPConnection.DI.GetNewObjectKey();

                    if (int.Parse(docnum) == 0) // Estava dando erro ao recuperar o DocEntry
                    {
                        t08.OIGE_DocNum = int.Parse(docnum);
                    }
                    else
                    {
                        t08.OIGE_DocNum = 999999; // Somente para verificar se houver falha.
                    }
                    t08.ReadBySAP = 'Y';
                    t08.MSG_SAP   = "SUCESSO - Saída do produto efetuada.";
                    T08NegDAO.UpdateStatus(t08);
                }
            }
            catch (Exception ex)
            {
                principal.GravaAudit("Transação " + t08.TransType.ToString() + " " + ex.Message.ToString());
            }
        }
Beispiel #9
0
        /// <summary>
        /// Delete SAP record if exist
        /// </summary>
        /// <param name="sap">SAP connection</param>
        /// <param name="key">Key to delete</param>
        /// <returns></returns>
        public bool Delete(SAPConnection sap, string key)
        {
            IBusinessPartners partner = sap.Company.GetBusinessObject(BoObjectTypes.oBusinessPartners);

            if (partner.GetByKey(key))
            {
                sap.CheckResponse(partner.Remove());
                return(true);
            }
            return(false);
        }
Beispiel #10
0
        /// <summary>
        /// Delete SAP record if exist
        /// </summary>
        /// <param name="sap">SAP connection</param>
        /// <param name="docEntry">Doc entry to delete</param>
        /// <returns></returns>
        public bool Delete(SAPConnection sap, int docEntry)
        {
            IDocuments document = sap.Company.GetBusinessObject(BoObjectTypes.oOrders);

            if (document.GetByKey(docEntry))
            {
                sap.CheckResponse(document.Cancel());
                return(true);
            }
            return(false);
        }
Beispiel #11
0
        /// <summary>
        /// Delete SAP record if exist
        /// </summary>
        /// <param name="sap">SAP connection</param>
        /// <param name="key">Key to delete</param>
        /// <returns></returns>
        public bool Delete(SAPConnection sap, int key)
        {
            IEmployeesInfo partner = sap.Company.GetBusinessObject(BoObjectTypes.oEmployeesInfo);

            if (partner.GetByKey(key))
            {
                sap.CheckResponse(partner.Remove());
                return(true);
            }
            return(false);
        }
 private static void ConectarComSAP()
 {
     try
     {
         SAPConnection.GetDICompany();
     }
     catch (Exception e)
     {
         System.Windows.Forms.MessageBox.Show(e.Message);
         System.Windows.Forms.Application.Exit();
     }
 }
Beispiel #13
0
        /// <summary>
        /// Cria saída dos insumos.
        /// </summary>
        /// <param name="t38"></param>
        private void newOIGE(T38Entity t38)
        {
            try
            {
                var Inventory = SAPConnection.GetDocument(SAPConnection.DocsEnum.OIGE);

                // HEADER
                // TODO - Saída do insumo, a data é a do dia.
                Inventory.DocDate = t38.AddDate;
                //Inventory.TaxDate = t08.OWOR_PostDate;
                Inventory.BPL_IDAssignedToInvoice = 1;
                //Inventory.Lines.Price = 10;
                Inventory.Lines.ItemCode = "";// t08.OITM_ItemCode;
                Inventory.Lines.Quantity = t38.IGE1_Quantity;
                //Inventory.Lines.WarehouseCode = t38.OWOR_WareHouse;
                //Inventory.Lines.UserFields.Fields.Item("U_Lot").Value = t38.IGN1_U_Lot;
                Inventory.Lines.BaseEntry = t38.OWOR_DocNum;
                Inventory.Lines.BaseType  = (int)SAPConnection.DocsEnum.OWOR;
                Inventory.Lines.BaseLine  = linenum; //t38.JOMAR_LineNum;

                principal.GravaAudit("Docnum " + t38.OWOR_DocNum.ToString());
                principal.GravaAudit("Linha" + linenum.ToString());

                Inventory.Lines.Add();

                //FOOTER
                Inventory.Comments = String.Format("ID {0} - Transação {1}.", t38.Id, t38.TransactionType);

                int res = Inventory.Add();

                if (res != 0)
                {
                    t38.MSG_SAP   = SAPConnection.DI.GetLastErrorDescription();
                    t38.ReadBySAP = 'E';
                    T38DAO.UpdateStatus(t38);

                    principal.GravaAudit("Docnum: " + t38.OWOR_DocNum.ToString() + " Transtype: " + SAPConnection.DocsEnum.OWOR.ToString() + " Linha: " + t38.JOMAR_LineNum.ToString() + SAPConnection.DI.GetLastErrorDescription().ToString());
                }
                else
                {
                    t38.ReadBySAP = 'Y';
                    var docnum = SAPConnection.DI.GetNewObjectKey();
                    t38.OIGE_DocNum = int.Parse(docnum);
                    t38.MSG_SAP     = "SUCESSO - Entrada de produto acabado inserido.";
                    T38DAO.UpdateStatus(t38);
                }
            }
            catch (Exception ex)
            {
                principal.GravaAudit("Transação " + t38.TransactionType.ToString() + " " + ex.Message.ToString());
            }
        }
Beispiel #14
0
        /// <summary>
        /// Cria Pedido de Vendo com item genérico.
        /// </summary>
        /// <param name="t32"></param>
        private void NewORDR(T32Entity t32)
        {
            if (!MyQuery.Exist("OITM", Properties.Settings.Default.ItemCodeDefault, "ItemCode"))
            {
                return;
            }

            var oORDR = SAPConnection.GetDocument(SAPConnection.DocsEnum.ORDR);

            oORDR.CardCode  = t32.JOMAR_CardCode;
            oORDR.NumAtCard = t32.ORDR_NumAtCard;
            oORDR.BPL_IDAssignedToInvoice = t32.ORDR_BplId;

            oORDR.Series      = -1;
            oORDR.HandWritten = BoYesNoEnum.tYES;
            oORDR.DocNum      = t32.JOMAR_OrderNum;
            oORDR.Reference1  = t32.JOMAR_OrderNum.ToString();
            oORDR.DocDate     = t32.ORDR_DocDate < (new DateTime(2016, 1, 1)) ? (new DateTime(2016, 1, 1)) : t32.ORDR_DocDate;
            oORDR.DocDueDate  = DateTime.Now;
            oORDR.TaxDate     = t32.ORDR_TaxDate < (new DateTime(2016, 1, 1)) ? (new DateTime(2016, 1, 1)) : t32.ORDR_TaxDate;

            oORDR.Lines.ItemCode      = Properties.Settings.Default.ItemCodeDefault;
            oORDR.Lines.Quantity      = 1;
            oORDR.Lines.Price         = 0;
            oORDR.Lines.WarehouseCode = "EM";
            oORDR.Lines.Add();

            oORDR.SalesPersonCode = t32.JOMAR_OIM;


            if (oORDR.Add() != 0)
            {
                t32.MSG_SAP       = SAPConnection.DI.GetLastErrorDescription();
                t32.ReadBySAP     = 'E';
                t32.ORDR_DocEntry = MyQuery.GetValue("ORDR", t32.JOMAR_OrderNum, "DocNum", "DocEntry").ToInt();
                t32.ReadBySAP     = t32.ORDR_DocEntry > 0 ? 'Y' : 'E';
                T32DAO.UpdateStatus(t32);

                if (SAPConnection.DI.InTransaction)
                {
                    SAPConnection.DI.EndTransaction(BoWfTransOpt.wf_RollBack);
                }
            }
            else
            {
                t32.ORDR_DocEntry = SAPConnection.GetNewKey();
                t32.ReadBySAP     = 'Y';
                t32.MSG_SAP       = "SUCESSO - Pedido de Venda  criado.";
                T32DAO.UpdateStatus(t32);
            }
        }
Beispiel #15
0
        /// <summary>
        /// Cria nova Entrada de Produtos acabados.
        /// </summary>
        /// <param name="t08"></param>
        private void NewOIGN(T08Entity t08)
        {
            try
            {
                var Inventory = SAPConnection.GetDocument(SAPConnection.DocsEnum.OIGN);

                // HEADER
                Inventory.DocDate = t08.OWOR_PostDate;
                //Inventory.TaxDate = tn08.OWOR_PostDate;
                Inventory.BPL_IDAssignedToInvoice = 1;
                //Inventory.Lines.Price = 10;
                //Inventory.Lines.ItemCode = tn08.OITM_ItemCode;
                Inventory.Lines.Quantity = t08.IGN1_Quantity;
                principal.GravaAudit(t08.IGN1_WhsCode);
                principal.GravaAudit(t08.OWOR_DocNum.ToString());
                Inventory.Lines.WarehouseCode = t08.IGN1_WhsCode;
                Inventory.Lines.UserFields.Fields.Item("U_Lot").Value = t08.IGN1_U_Lot;
                Inventory.Lines.BaseEntry = t08.OWOR_DocNum;
                Inventory.Lines.BaseType  = (int)SAPConnection.DocsEnum.OWOR;
                Inventory.Lines.Add();

                //FOOTER
                Inventory.Comments = t08.OIGN_Comments;

                int res = Inventory.Add();

                if (res != 0)
                {
                    t08.MSG_SAP   = SAPConnection.DI.GetLastErrorDescription();
                    t08.ReadBySAP = 'E';
                    principal.GravaAudit(t08.MSG_SAP);
                    T08DAO.UpdateStatus(t08);

                    principal.GravaAudit(SAPConnection.DI.GetLastErrorDescription().ToString());
                }
                else
                {
                    var docnum = SAPConnection.DI.GetNewObjectKey();
                    t08.OIGN_DocNum = int.Parse(docnum);
                    t08.ReadBySAP   = 'Y';
                    t08.MSG_SAP     = "SUCESSO - Entrada de produto acabado inserido.";
                    principal.GravaAudit(t08.MSG_SAP);
                    T08DAO.UpdateStatus(t08);
                }
            }
            catch (Exception ex)
            {
                principal.GravaAudit("Transação " + t08.TransType.ToString() + " " + ex.Message);
            }
        }
Beispiel #16
0
 /// <summary>
 /// Synchornize all connectors
 /// </summary>
 /// <param name="lastDownload">Last downloads times</param>
 /// <param name="lastUpload">Last upload times</param>
 /// <param name="commitTime">Commit times</param>
 public virtual void Sync(Dictionary <string, long> lastDownload, Dictionary <string, long> lastUpload, long commitTime)
 {
     if (Connectors.Count > 0 && lastDownload != null && lastUpload != null)
     {
         // Creating database connection
         using (DBConnection db = new DBConnection())
         {
             bool fetched = false;
             foreach (KeyValuePair <string, IRestConnector> connector in Connectors)
             {
                 // Upload to API
                 if (connector.Value is IUpload upload)
                 {
                     long last = 0;
                     if (lastUpload.ContainsKey(connector.Key))
                     {
                         last = lastUpload[connector.Key];
                     }
                     upload.Upload(db, last, commitTime);
                 }
                 // Download from API
                 if (connector.Value is IDownload download)
                 {
                     long last = 0;
                     if (lastDownload.ContainsKey(connector.Key))
                     {
                         last = lastDownload[connector.Key];
                     }
                     download.Download(last);
                 }
                 fetched |= connector.Value.Fetched;
             }
             // Store in SAP (Openning SAP is highly cost, so open just when required)
             if (fetched)
             {
                 using (SAPConnection sap = new SAPConnection())
                 {
                     foreach (KeyValuePair <string, IRestConnector> connector in Connectors)
                     {
                         if (connector.Value.Fetched)
                         {
                             connector.Value.SapStore(sap, db, commitTime);
                         }
                     }
                 }
             }
         }
     }
 }
Beispiel #17
0
        /// <summary>
        /// Create a new business partner
        /// </summary>
        /// <param name="sap">SAP connection</param>
        /// <param name="firstName">First name</param>
        /// <param name="lastName">Last name</param>
        /// <param name="active">Employee activation</param>
        /// <returns>Retrieve new object key</returns>
        public int Create(
            SAPConnection sap,
            string firstName,
            string lastName,
            bool active)
        {
            IEmployeesInfo partner = sap.Company.GetBusinessObject(BoObjectTypes.oEmployeesInfo);

            partner.FirstName = firstName;
            partner.LastName  = lastName;
            partner.Active    = active ? BoYesNoEnum.tYES : BoYesNoEnum.tNO;

            sap.CheckResponse(partner.Add());
            return(int.Parse(sap.Company.GetNewObjectKey()));
        }
Beispiel #18
0
        public void ShouldCreateBusinessPartner()
        {
            using (SAPConnection sap = new SAPConnection())
                using (DBConnection db = new DBConnection())
                {
                    Handler.Delete(sap, "SF01");
                    string key = Handler.Create(sap, "SF01", "Awesome product");
                    Assert.AreEqual("SF01", key);

                    Dictionary <string, string> record = Handler.LoadByKey(db, "SF01");
                    AssertItem(record, "SF01", "Awesome product");

                    Assert.IsTrue(Handler.Delete(sap, "SF01"));
                }
        }
Beispiel #19
0
        /// <summary>
        /// Registra o documento no SBO.
        /// </summary>
        /// <param name="oPedido">Entidade</param>
        /// <exception cref="SAPException">Retorno o erro do SAP em log</exception>
        public void Add(MyLibs.v2.sbo.DI.Documents.Entity.DocumentsEntity oPedido)
        {
            var oDocument = SAPConnection.GetDocument(Table);

            // Header
            oDocument.CardCode   = oPedido.CardCode;
            oDocument.CardName   = oPedido.CardName;
            oDocument.NumAtCard  = oPedido.NumAtCard;
            oDocument.DocDate    = oPedido.DocDate;
            oDocument.DocDueDate = oPedido.DocDueDate;
            oDocument.TaxDate    = oPedido.TaxDate;
            oDocument.Series     = oPedido.Series;

            if (SAPConnection.IsMultiBranchs())
            {
                oDocument.BPL_IDAssignedToInvoice = oPedido.BplId;
            }

            // Lines
            foreach (var line in oPedido.Lines)
            {
                oDocument.Lines.ItemCode        = line.ItemCode;
                oDocument.Lines.Quantity        = line.Quantity;
                oDocument.Lines.DiscountPercent = line.DiscPrcnt;

                if (line.LineNum >= 0)
                {
                    oDocument.Lines.BaseLine  = line.LineNum;
                    oDocument.Lines.BaseType  = (int)oPedido.ObjType;
                    oDocument.Lines.BaseEntry = oPedido.DocNum;
                }

                oDocument.Lines.Add();
            }

            // Footer
            oDocument.DiscountPercent = oPedido.DiscPrcnt;
            oDocument.Comments        = oPedido.Comments;

            if (oDocument.Add() != 0)
            {
                throw new MyLibs.v2.sbo.Register.SAPException(this.GetType(), "0 - Erro ao adicionar um PV");
            }
            else
            {
                oPedido.DocNum = SAPConnection.GetNewKey();
            }
        }
Beispiel #20
0
        /// <summary>
        /// Desmontagem - Entrada dos insumos.
        /// </summary>
        /// <param name="t38"></param>
        private void NewOIGN(T38Entity t38)
        {
            try
            {
                var Inventory = SAPConnection.GetDocument(SAPConnection.DocsEnum.OIGN);

                // HEADER
                // TODO - Entrada do insumo, a data é a do dia.
                Inventory.DocDate = t38.AddDate;
                //Inventory.TaxDate = t08.OWOR_PostDate;
                Inventory.BPL_IDAssignedToInvoice = 1;
                //Inventory.Lines.Price = 10;
                Inventory.Lines.ItemCode = "";// t08.OITM_ItemCode;
                Inventory.Lines.Quantity = t38.IGE1_Quantity;
                //Inventory.Lines.WarehouseCode = t38.OWOR_WareHouse;
                //Inventory.Lines.UserFields.Fields.Item("U_Lot").Value = t38.IGN1_U_Lot;
                Inventory.Lines.BaseEntry = t38.OWOR_DocNum;
                Inventory.Lines.BaseType  = (int)SAPConnection.DocsEnum.OWOR;
                Inventory.Lines.BaseLine  = t38.WOR1_LineNum;
                Inventory.Lines.Add();

                //FOOTER
                Inventory.Comments = String.Format("ID {0} - Transação {1}.", t38.Id, t38.TransactionType);

                int res = Inventory.Add();

                if (res != 0)
                {
                    t38.MSG_SAP   = SAPConnection.DI.GetLastErrorDescription();
                    t38.ReadBySAP = 'E';
                    T38DAO.UpdateStatus(t38);

                    principal.GravaAudit(this.GetType().ToString() + " " + ROBO.Properties.LogMessage.ERRO_003_4.ToString() + " " + t38.TransactionType.ToString() + " " + t38.Id.ToString() + " " + SAPConnection.DI.GetLastErrorDescription().ToString());
                }
                else
                {
                    var docnum = SAPConnection.DI.GetNewObjectKey();
                    t38.OIGE_DocNum = int.Parse(docnum);
                    t38.MSG_SAP     = "SUCESSO - Desmontagem e extorno do insumo.";
                    T38DAO.UpdateStatus(t38);
                }
            }
            catch (Exception ex)
            {
                principal.GravaAudit("Transação " + t38.TransactionType.ToString() + " " + ex.Message.ToString());
            }
        }
Beispiel #21
0
        /// <summary>
        /// Create a new business partner
        /// </summary>
        /// <param name="sap">SAP connection</param>
        /// <param name="cardCode">Card code</param>
        /// <param name="cardName">Card name</param>
        /// <param name="cardType">Card type</param>
        /// <param name="licTradeNumber">Lic trade number</param>
        /// <returns>Retrieve new object key</returns>
        public string Create(
            SAPConnection sap,
            string cardCode,
            string cardName,
            string licTradeNumber,
            BoCardTypes cardType)
        {
            IBusinessPartners partner = sap.Company.GetBusinessObject(BoObjectTypes.oBusinessPartners);

            partner.CardCode     = cardCode;
            partner.CardName     = cardName;
            partner.CardType     = cardType;
            partner.FederalTaxID = licTradeNumber;

            sap.CheckResponse(partner.Add());
            return(sap.Company.GetNewObjectKey());
        }
Beispiel #22
0
        public IHttpActionResult CreateDocument(createDocs createdocs)
        {
            //Inicializo mi conexión a SAP
            SAPConnection conncetion = new SAPConnection();

            SAPbobsCOM.Company   company = conncetion.OpenConnection();
            SAPbobsCOM.Documents draft;

            draft = company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oDrafts);
            draft.GetByKey(createdocs.DocEntry);
            draft.Comments   = createdocs.Comments;
            draft.EDocStatus = (EDocStatusEnum)BoBoeStatus.boes_Created;
            //draft.DocumentStatus = BoStatus.bost_Close;
            draft.Update();

            return(Ok(responseCall));
        }
        public void ShouldCreateBusinessPartner()
        {
            using (SAPConnection sap = new SAPConnection())
                using (DBConnection db = new DBConnection())
                {
                    Handler.Delete(sap, "SF01");
                    string key = Handler.Create(sap,
                                                "SF01",
                                                "Silifalcon",
                                                "SILF160106PP",
                                                SAPbobsCOM.BoCardTypes.cCustomer);
                    Assert.AreEqual("SF01", key);

                    Dictionary <string, string> record = Handler.LoadByCode(db, "SF01");
                    AssertBusinessPartner(record, "SF01", "Silifalcon", "SILF160106PP", "C");

                    Assert.IsTrue(Handler.Delete(sap, "SF01"));
                }
        }
Beispiel #24
0
        /// <summary>
        /// Atualiza com novas linhas o pedido de venda
        /// </summary>
        /// <param name="t32"></param>
        private void NewLineORDR(T32Entity t32)
        {
            foreach (var line in t32.Lines)
            {
                var oORDR = SAPConnection.GetDocument(SAPConnection.DocsEnum.ORDR);

                if (oORDR.GetByKey(t32.ORDR_DocEntry))
                {
                    oORDR.Lines.Add();
                    line.RDR1_LineNum = oORDR.Lines.Count - 1;
                    oORDR.Lines.SetCurrentLine(line.RDR1_LineNum);
                    ////////////////////////////////////
                    oORDR.Lines.ItemCode = line.OITM_ItemCode;
                    oORDR.Lines.Quantity = line.RDR1_Quantity;
                    //oODRF.Lines.Price = ;
                    oORDR.Lines.WarehouseCode = line.RDR1_WhsCode;
                    oORDR.Lines.UserFields.Fields.Item("U_PesoPeca").Value = line.JOMAR_Peso;
                    oORDR.Lines.Add();

                    if (oORDR.Update() != 0)
                    {
                        line.ReadBySAP = 'E';
                        line.MSG_SAP   = SAPConnection.DI.GetLastErrorDescription();
                        T32DAO.UpdateStatus(t32);

                        principal.GravaAudit("Transação 32 " + line.MSG_SAP.ToString());
                    }
                    else
                    {
                        line.ReadBySAP     = 'Y';
                        line.ORDR_DocEntry = t32.ORDR_DocEntry;
                        line.MSG_SAP       = "SUCESSO - Linha cadastrada";
                        T32DAO.UpdateStatus(t32);
                    }
                }
                else
                {
                    line.ReadBySAP = 'E';
                    line.MSG_SAP   = "Não foi localizado nenhum pedido de venda.";
                    T32DAO.UpdateStatus(t32);
                }
            }
        }
Beispiel #25
0
        /// <summary>
        /// Atualiza o pedido de venda.
        /// </summary>
        /// <param name="oPedido">DocEntry</param>
        /// <exception cref="SAPException">Retorno o erro do SAP em log</exception>
        public void Update(MyLibs.v2.sbo.DI.Documents.Entity.DocumentsEntity oDocEntity)
        {
            var oDocument = SAPConnection.GetDocument(Table);

            if (!oDocument.GetByKey(oDocEntity.DocNum))
            {
                throw new LogException(this.GetType(), System.Diagnostics.EventLogEntryType.Error, Properties.LogMessage.Erro_0033_2, oDocEntity.DocNum, oDocEntity.MyValues["Id"].ToString());
            }


            oDocument.DocDate         = oDocEntity.DocDate;
            oDocument.TaxDate         = oDocEntity.TaxDate;
            oDocument.SalesPersonCode = oDocEntity.Slpcode;
            oDocument.NumAtCard       = oDocEntity.NumAtCard;
            oDocument.Comments        = oDocEntity.Comments;
            //oDocument.ObjType = ""

            foreach (var line in oDocEntity.Lines)
            {
                oDocument.Lines.Add();
                // @BFGUNDES - Atualiza somente linha aberta.
                if (oDocument.Lines.LineStatus == SAPbobsCOM.BoStatus.bost_Open)
                {
                    oDocument.Lines.SetCurrentLine(line.LineNum);
                    oDocument.Lines.ItemCode = line.ItemCode;
                    oDocument.Lines.Quantity = line.Quantity;
                    oDocument.Lines.Price    = line.Price;
                }
            }

            if (oDocument.Update() != 0)
            {
                oDocEntity.MyValues["MSG_SAP"]   = new ConvertTo(SAPConnection.DI.GetLastErrorDescription());
                oDocEntity.MyValues["ReadBySAP"] = new ConvertTo("E");

                foreach (var line in oDocEntity.Lines)
                {
                    line.MyValues["ReadBySAP"] = new ConvertTo("E");
                }

                principal.GravaAudit(this.GetType().Name.ToString() + " 0 - Não foi possivel atualizar pedido de venda nº " + oDocEntity.DocNum.ToString());
            }
        }
Beispiel #26
0
        private static void ConectarComSAP()
        {
            SAPConnection.SBOApplicationHandler applicationHandler = null;
            applicationHandler += Dialogs.RecebeSBOApplication;
            applicationHandler += Menu.RecebeSBOApplication;
            applicationHandler += applicationParam => _sBOApplication = applicationParam;

            SAPConnection.CompanyHandler companyHandler = null;
            companyHandler += companyParam => _company = companyParam;
            companyHandler += Database.RecebeCompany;
            try
            {
                SAPConnection.Connect(applicationHandler, companyHandler);
            }
            catch (Exception e)
            {
                System.Windows.Forms.MessageBox.Show(e.Message);
                System.Windows.Forms.Application.Exit();
            }
        }
 private void GetQueryDefinition()
 {
     try
     {
         WorkSpace     area = checkStandard.Checked == true ? WorkSpace.StandardArea : WorkSpace.GlobalArea;
         SAPConnection con  = new SAPConnection(systemName);
         q = con.CreateQuery(area, userGroup, queryName, variant);
         // parameterCollection = new QuerySelectionParameterCollection();
         parameterCollection = q.SelectionParameters;
         dgvParameters.Rows.Clear();
         DataGridViewComboBoxColumn col = (DataGridViewComboBoxColumn)dgvParameters.Columns["CSELNAME"];
         col.DataSource    = null;
         col.DataSource    = parameterCollection;
         col.DisplayMember = "DescriptionText";
         q = null;
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }
Beispiel #28
0
        public IHttpActionResult AutorizacionesMasivas([FromBody] AuthorizationsM authorizationsm)
        {
            //return Ok (authorizationsm.WddCode[1]);
            //Inicializo mi conexión a SAP
            SAPConnection conncetion = new SAPConnection();

            SAPbobsCOM.Company company = conncetion.OpenConnection(authorizationsm.dbname, authorizationsm.userSap, authorizationsm.userSapPass);

            SAPbobsCOM.CompanyService          oCompanyService = company.GetCompanyService();
            SAPbobsCOM.ApprovalRequestsService approvalSrv     = oCompanyService.GetBusinessService(SAPbobsCOM.ServiceTypes.ApprovalRequestsService);
            ApprovalRequestParams oParams = approvalSrv.GetDataInterface(ApprovalRequestsServiceDataInterfaces.arsApprovalRequestParams) as ApprovalRequestParams;

            for (int i = 0; i < authorizationsm.WddCode.Length; i++)
            {
                oParams.Code = authorizationsm.WddCode[i];
                ApprovalRequest oData = approvalSrv.GetApprovalRequest(oParams);

                //Agregar una autorización
                oData.ApprovalRequestDecisions.Add();
                oData.ApprovalRequestDecisions.Item(0).ApproverUserName = authorizationsm.userSap;
                oData.ApprovalRequestDecisions.Item(0).ApproverPassword = authorizationsm.userSapPass;
                //Autorizar
                if (authorizationsm.Status == "Y")
                {
                    oData.ApprovalRequestDecisions.Item(0).Status = BoApprovalRequestDecisionEnum.ardApproved;
                }
                else
                if (authorizationsm.Status == "N")
                {
                    oData.ApprovalRequestDecisions.Item(0).Status = BoApprovalRequestDecisionEnum.ardNotApproved;
                }
                oData.ApprovalRequestDecisions.Item(0).Remarks = authorizationsm.Remarks;
                //Actualizar la autorización

                approvalSrv.UpdateRequest(oData);
            }

            return(Ok(responseCall));
            //return Json(new { status = "error", message = "error creating customer" });
        }
 /// <summary>
 /// Store SAP data based on fetched data
 /// </summary>
 /// <param name="sap">SAP connection</param>
 /// <param name="db">Database connection</param>
 /// <param name="commitTime">Commit time (Unix time)</param>
 public void SapStore(SAPConnection sap, DBConnection db, long commitTime)
 {
     if (!DataFetched.Empty && this is ISyncDownload <TRest> downloader)
     {
         logger.Debug("Storing data");
         List <TRest> changed = new List <TRest>();
         if (DataFetched.NewRecords.Count > 0)
         {
             foreach (TRest i in DataFetched.NewRecords)
             {
                 TRest model = downloader.Create(db, sap, i);
                 if (model != null)
                 {
                     changed.Add(model);
                 }
             }
         }
         if (DataFetched.ExistingRecords.Count > 0)
         {
             foreach (TRest i in DataFetched.ExistingRecords)
             {
                 TRest model = downloader.Update(db, sap, i);
                 if (model != null)
                 {
                     changed.Add(model);
                 }
             }
         }
         if (changed.Count > 0)
         {
             downloader.CommitFetch(commitTime);
             if (this is ISyncUpload <TRest> uploader)
             {
                 logger.Info("Updating changes");
                 uploader.Push(changed);
             }
         }
     }
 }
Beispiel #30
0
 public GetSapData()
 {
     #region 获取SAP连接
     try
     {
         Dest   = SAPConnection.GetSAPConnection();
         RFC    = Dest.Repository;
         Client = System.Configuration.ConfigurationManager.AppSettings["Client"];
     }
     catch (Exception ex)
     {
         if (ex.Message != "Destination configuration already initialized")
         {
         }
         else
         {
             Dest = RfcDestinationManager.GetDestination("SAP");
             RFC  = Dest.Repository;
         }
     }
     #endregion
 }