public static void UpdateStatus(T38Entity t38)
 {
     using (var rs0 = new MyRecordSet())
     {
         var sql = "UPDATE [Sage_Transaction38] SET ReadBySAP = '{0}', [OIGE_DocNum] = '{1}',[MSG_SAP] = '{3}',Update_CodeBars = '{4}',[OIGN_DocNum] = '{5}',OWOR_DocNum = '{6}'  WHERE Id = '{2}'";
         rs0.DoQuery(sql, t38.ReadBySAP, t38.OIGE_DocNum, t38.Id, t38.MSG_SAP, t38.Update_CodeBars, t38.OIGN_DocNum, t38.OWOR_DocNum);                
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Cria transferencia de estoque.
        /// </summary>
        /// <param name="t38"></param>
        private void newOWTR(T38Entity t38, Action act)
        {
            try
            {
                var oStock = (StockTransfer)SAPConnection.DI.GetBusinessObject(BoObjectTypes.oStockTransfer);

                // HEADER
                oStock.DocDate       = t38.AddDate;
                oStock.FromWarehouse = t38.From_WareHouse; // FIX_ME!
                oStock.ToWarehouse   = t38.To_WareHouse;   // FIX_ME!
                oStock.UserFields.Fields.Item("U_OWOR_JOMAR").Value = t38.JOMAR_OrderNum;
                // LINES
                principal.GravaAudit("ItemCode " + t38.OITM_ItemCode);
                principal.GravaAudit("FromWarehouse " + t38.From_WareHouse);
                principal.GravaAudit("ToWarehouse " + t38.To_WareHouse);
                principal.GravaAudit("Quantity " + t38.IGE1_Quantity.ToString());
                principal.GravaAudit("ID " + t38.Id.ToString());
                principal.GravaAudit("U_OWOR_JOMAR " + t38.JOMAR_OrderNum.ToString());

                oStock.Lines.ItemCode          = t38.OITM_ItemCode;
                oStock.Lines.Quantity          = t38.IGE1_Quantity;
                oStock.Lines.FromWarehouseCode = t38.From_WareHouse; // FIX_ME!
                oStock.Lines.WarehouseCode     = t38.To_WareHouse;   // FIX_ME!

                oStock.Lines.Add();

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

                int res = oStock.Add();

                if (res != 0)
                {
                    t38.MSG_SAP         = SAPConnection.DI.GetLastErrorDescription();
                    t38.ReadBySAP       = 'E';
                    t38.Update_CodeBars = 'N';
                    principal.GravaAudit(t38.MSG_SAP);
                    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';
                    t38.Update_CodeBars = 'N';
                    var docnum = SAPConnection.DI.GetNewObjectKey();
                    t38.OIGE_DocNum = int.Parse(docnum);
                    t38.MSG_SAP     = "SUCESSO - Transferencia de estoque inserida.";
                    principal.GravaAudit(t38.MSG_SAP);
                    T38DAO.UpdateStatus(t38);
                }
            }
            catch (Exception ex)
            {
                principal.GravaAudit("Transação " + t38.TransactionType.ToString() + " " + ex.Message.ToString());
            }
        }
Esempio n. 3
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());
            }
        }
Esempio n. 4
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());
            }
        }
        /// <summary>
        /// Retorna as entidades de transações não lida pelo SAP.
        /// </summary>
        /// <param name="JOMAR_OrderNum">Número de Ordem Jomar (0 todos)</param>
        /// <returns></returns>
        public static List<T38Entity> GetDados(int JOMAR_OrderNum = 0)
        {
            var transacoes = new List<T38Entity>();

            using (var conn = new MyRecordSet())
            {
                if(JOMAR_OrderNum > 0)
                    conn.DoQuery("SELECT * FROM [Sage_Transaction38] WITH (NOLOCK) WHERE TransactionType = '-38' AND [JOMAR_OrderNum] = '{0}' AND (WOR1_DocNum IS NULL OR WOR1_DocNum = 0)", JOMAR_OrderNum);
                else
                    conn.DoQuery("SELECT * FROM [Sage_Transaction38] WITH (NOLOCK) WHERE TransactionType = '-38' AND [ReadBySAP] <> 'Y'");

                principal.GravaAudit("Inicio While - 38");
                while (conn.HasNext())
                {
                    var t38 = new T38Entity();
                    try
                    {
                        t38.Id = conn.GetFieldValue("Id").ToInt();
                        t38.AddDate = conn.GetFieldValue("AddDate").ToDate();
                        t38.TransactionType = conn.GetFieldValue("TransactionType").ToInt();
                        t38.ReadBySAP = conn.GetFieldValue("ReadBySAP").ToChar();
                        t38.JOMAR_OrderNum = conn.GetFieldValue("JOMAR_OrderNum").ToString();
                        t38.WOR1_DocNum = conn.GetFieldValue("WOR1_DocNum").ToInt();
                        t38.To_WareHouse = "PP";
                        t38.From_WareHouse = conn.GetFieldValue("WOR1_WareHouse").ToString();
                        t38.OITM_CodeBars = conn.GetFieldValue("OITM_CodeBars").ToString();
                        t38.JOMAR_LineNum = conn.GetFieldValue("JOMAR_LineNum").ToInt();
                        t38.WOR1_BaseQty = conn.GetFieldValue("WOR1_BaseQty").ToDouble();
                        t38.WOR1_PlannedQty = conn.GetFieldValue("WOR1_PlannedQty").ToDouble();
                        t38.IGE1_Quantity= conn.GetFieldValue("IGE1_Quantity").ToDouble();
                        t38.OWOR_DocNum = MyQuery.GetValue("OWOR", t38.JOMAR_OrderNum, "U_ORDER_JOMAR", "DocNum").ToInt();
                        principal.GravaAudit("- 38 - JOMAR_OrderNum " + t38.JOMAR_OrderNum);

                        if (t38.OWOR_DocNum > 0)
                        {
                            if ((Program.contador % 2) == 0)
                            {
                                if (t38.ReadBySAP != 'E')
                                    transacoes.Add(t38);
                            }
                            else
                            {
                                transacoes.Add(t38);
                            }
                        }  

                    } 
                    catch(Exception ex) {
                        t38.ReadBySAP = 'E';
                        t38.MSG_SAP = ex.Message;

                        UpdateStatus(t38);

                        principal.GravaAudit("Transação 38 Erro empacotar ID " + t38.Id.ToString() + " " + ex.Message.ToString());
                    }    

                }

             return transacoes;
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Atualiza a linha OWOR.U_line_Jomar com ITT1.
        /// </summary>
        /// <param name="t08"></param>
        private void LineJomarOWOR(T38Entity t38)
        {
            try
            {
                bool   lineexist = false;
                bool   itemexist = false;
                string itemcode  = null;

                using (var rs = new MyRecordSet())
                {
                    // Pesquisa a Linha Jomar.
                    rs.DoQuery("SELECT ItemCode,LineNum FROM WOR1 WHERE DocEntry = '{0}' AND U_Line_Jomar = '{1}'", t38.OWOR_DocNum, t38.JOMAR_LineNum);

                    if (rs.HasNext())
                    {
                        lineexist = true;
                        linenum   = rs.GetFieldValue(1).ToInt();
                        itemcode  = rs.GetFieldValue(0).ToString();

                        if (t38.OITM_ItemCode == itemcode)
                        {
                            return;
                        }
                    }
                    else
                    {
                        // Pesquisa por item.
                        rs.DoQuery("SELECT LineNum FROM WOR1 WHERE DocEntry = '{0}' AND ItemCode = '{1}'", t38.OWOR_DocNum, t38.OITM_ItemCode);

                        if (rs.HasNext())
                        {
                            itemexist = true;
                            linenum   = rs.GetFieldValue(0).ToInt();
                        }
                        else
                        {
                            principal.GravaAudit(t38.Id.ToString() + " LineJomar OWOR Não existe a linha Jomar " + t38.JOMAR_LineNum.ToString() + "  nem o itemCode " + t38.OITM_ItemCode.ToString() + " na OWOR " + t38.OWOR_DocNum.ToString());
                            return;
                        }
                    }
                }


                bool newitem = false;

                var oOWOR = (SAPbobsCOM.ProductionOrders)SAPConnection.DI.GetBusinessObject(BoObjectTypes.oProductionOrders);

                if (oOWOR.GetByKey(t38.OWOR_DocNum))
                {
                    if (lineexist)
                    {
                        oOWOR.Lines.SetCurrentLine(linenum);

                        if (itemcode != t38.OITM_ItemCode)
                        {
                            oOWOR.Lines.ItemNo = t38.OITM_ItemCode;
                            newitem            = true;
                        }
                    }
                    else if (itemexist)
                    {
                        oOWOR.Lines.SetCurrentLine(linenum);
                        oOWOR.Lines.UserFields.Fields.Item("U_Line_Jomar").Value = t38.JOMAR_LineNum;
                        t38.Update_CodeBars = 'N';
                    }

                    if (oOWOR.Update() != 0)
                    {
                        t38.ReadBySAP       = 'E';
                        t38.Update_CodeBars = 'N';
                        t38.MSG_SAP         = String.Format(Properties.LogMessage.Trans38_0037_2, t38.Id, SAPConnection.DI.GetLastErrorDescription());
                        T38DAO.UpdateStatus(t38);

                        principal.GravaAudit("LineJomarOWOR " + t38.MSG_SAP.ToString());
                    }
                    else
                    {
                        t38.Update_CodeBars = newitem ? 'Y' : 'N';
                        t38.ReadBySAP       = 'Y';
                        t38.MSG_SAP         = "Linha/Item Jomar atualizado na tela de Ordem de Produção.";
                        T38DAO.UpdateStatus(t38);
                    }
                }
            }
            catch (Exception ex)
            {
                principal.GravaAudit("LineJomarOWOR " + ex.Message.ToString());
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Retorna as entidades de transações não lida pelo SAP.
        /// </summary>
        /// <param name="JOMAR_OrderNum">Número de Ordem Jomar (0 todos)</param>
        /// <returns></returns>
        public static List <T38Entity> GetDados(int JOMAR_OrderNum = 0)
        {
            var transacoes = new List <T38Entity>();

            using (var conn = new MyRecordSet())
            {
                if (JOMAR_OrderNum > 0)
                {
                    conn.DoQuery("SELECT * FROM [Sage_Transaction38] WITH (NOLOCK) WHERE TransactionType = '38' AND [JOMAR_OrderNum] = '{0}' AND (WOR1_DocNum IS NULL OR WOR1_DocNum = 0)", JOMAR_OrderNum);
                }
                else
                {
                    conn.DoQuery("SELECT * FROM [Sage_Transaction38] T0 WITH (NOLOCK) inner join OITM T1 on T1.CodeBars = T0.oitm_Codebars inner join OWOR T3 on T3.U_ORDER_JOMAR = T0.Jomar_OrderNum inner join WOR1 T2 on T2.DocEntry = T3.DocEntry and T2.itemcode = T1.ItemCode WHERE TransactionType = '38' AND [ReadBySAP] <> 'Y' AND (OIGE_DocNum IS NULL OR OIGE_DocNum = 0) order by T0.Jomar_OrderNum "); //(WOR1_DocNum IS NULL OR WOR1_DocNum = 0) AND
                }
                principal.GravaAudit("Inicio While ");
                while (conn.HasNext())
                {
                    var t38 = new T38Entity();
                    try
                    {
                        principal.GravaAudit(conn.GetFieldValue("JOMAR_OrderNum").ToString());
                        t38.Id              = conn.GetFieldValue("Id").ToInt();
                        t38.AddDate         = conn.GetFieldValue("AddDate").ToDate();
                        t38.Update_CodeBars = conn.GetFieldValue("Update_CodeBars").ToChar();
                        t38.TransactionType = conn.GetFieldValue("TransactionType").ToInt();
                        t38.ReadBySAP       = conn.GetFieldValue("ReadBySAP").ToChar();
                        t38.JOMAR_OrderNum  = conn.GetFieldValue("JOMAR_OrderNum").ToString();
                        t38.WOR1_DocNum     = conn.GetFieldValue("WOR1_DocNum").ToInt();
                        t38.To_WareHouse    = "PP";
                        t38.From_WareHouse  = conn.GetFieldValue("WOR1_WareHouse").ToString();
                        t38.OITM_CodeBars   = conn.GetFieldValue("OITM_CodeBars").ToString();
                        t38.JOMAR_LineNum   = conn.GetFieldValue("JOMAR_LineNum").ToInt();
                        t38.WOR1_BaseQty    = conn.GetFieldValue("WOR1_BaseQty").ToDouble();
                        t38.WOR1_PlannedQty = conn.GetFieldValue("WOR1_PlannedQty").ToDouble();
                        t38.IGE1_Quantity   = conn.GetFieldValue("IGE1_Quantity").ToDouble();
                        t38.OWOR_DocNum     = MyQuery.GetValue("OWOR", t38.JOMAR_OrderNum, "U_ORDER_JOMAR", "DocNum").ToInt();

                        principal.GravaAudit("Existe OPs " + t38.OWOR_DocNum);
                        if ((Program.contador % 2) == 0)
                        {
                            //if (t38.ReadBySAP != 'E')
                            transacoes.Add(t38);
                        }
                        else
                        {
                            transacoes.Add(t38);
                        }
                    }
                    catch (Exception ex) {
                        t38.ReadBySAP = 'E';
                        t38.MSG_SAP   = ex.Message;

                        UpdateStatus(t38);

                        principal.GravaAudit("Transação 38 - " + t38.Id.ToString() + " " + ex.Message.ToString());
                    }
                }

                principal.GravaAudit("Termino While");

                return(transacoes);
            }
        }