Example #1
0
        public static void UpdateStatus(T32Entity t32, bool grupo = false)
        {
            if (grupo)
            {
                foreach (var line in t32.Lines)
                {
                    var sql1 = new StringBuilder();
                    sql1.AppendLine("UPDATE");
                    sql1.AppendLine("[dbo].[Sage_Transacoes32L1] SET");

                    sql1.AppendLine(String.Format("ReadBySAP = '{0}'", line.ReadBySAP));
                    sql1.AppendLine(String.Format(",ORDR_DocEntry = '{0}'", line.ORDR_DocEntry));
                    sql1.AppendLine(String.Format(",OINV_DocEntry = '{0}'", line.OINV_DocEntry));
                    sql1.AppendLine(String.Format(",MSG_SAP = '{0}'", line.MSG_SAP));

                    sql1.AppendLine(String.Format("WHERE"));
                    sql1.AppendLine(String.Format("JOMAR_OrderNum = '{0}' AND ORDR_DocEntry = '{1}'", line.JOMAR_OrderNum, line.ORDR_DocEntry));

                    (new MyRecordSet()).DoQuery(sql1.ToString());
                    sql1 = null;
                }

                return;
            }

            StringBuilder sql = new StringBuilder();

            sql.AppendLine("UPDATE");
            sql.AppendLine("[dbo].[Sage_Transacoes32] SET");

            sql.AppendLine(String.Format("ReadBySAP = '{0}'", t32.ReadBySAP));
            sql.AppendLine(String.Format(",ORDR_DocEntry = '{0}'", t32.ORDR_DocEntry));
            sql.AppendLine(String.Format(",ORDR_Comments = '{0}'", t32.ORDR_Comments));
            sql.AppendLine(String.Format(",MSG_SAP = '{0}'", t32.MSG_SAP));

            sql.AppendLine(String.Format("WHERE"));
            sql.AppendLine(String.Format("JOMAR_OrderNum = '{0}'", t32.JOMAR_OrderNum));

            (new MyRecordSet()).DoQuery(sql.ToString());
            sql = null;

            foreach (var line in t32.Lines)
            {
                sql = new StringBuilder();
                sql.AppendLine("UPDATE");
                sql.AppendLine("[dbo].[Sage_Transacoes32L1] SET");

                sql.AppendLine(String.Format("ReadBySAP = '{0}'", line.ReadBySAP));
                sql.AppendLine(String.Format(",ORDR_DocEntry = '{0}'", line.ORDR_DocEntry));
                sql.AppendLine(String.Format(",OINV_DocEntry = '{0}'", line.OINV_DocEntry));
                sql.AppendLine(String.Format(",RDR1_LineNum = '{0}'", line.RDR1_LineNum));
                sql.AppendLine(String.Format(",MSG_SAP = '{0}'", line.MSG_SAP));

                sql.AppendLine(String.Format("WHERE"));
                sql.AppendLine(String.Format("JOMAR_OrderNum = '{0}' AND SalesOrderIndex = '{1}'", line.JOMAR_OrderNum, line.SalesOrderIndex));

                (new MyRecordSet()).DoQuery(sql.ToString());
                sql = null;
            }
        }
Example #2
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);
            }
        }
Example #3
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);
                }
            }
        }
Example #4
0
        /// <summary>
        /// Cria um esboço de Nota Fiscal.
        /// </summary>
        /// <param name="t32"></param>
        private void NewOINV(T32Entity t32)
        {
            var oODRF = SAPConnection.GetDocument(SAPConnection.DocsEnum.ODRF);

            oODRF.DocObjectCode = BoObjectTypes.oInvoices;
            oODRF.CardCode      = t32.JOMAR_CardCode;
            //oODRF.NumAtCard = t32.ORDR_NumAtCard;
            oODRF.HandWritten             = BoYesNoEnum.tNO;
            oODRF.BPL_IDAssignedToInvoice = t32.ORDR_BplId;

            //oODRF.Reference1 = t32.JOMAR_OrderNum.ToString();
            oODRF.DocDate    = DateTime.Now;
            oODRF.DocDueDate = DateTime.Now;
            oODRF.TaxDate    = DateTime.Now;

            foreach (var line in t32.Lines)
            {
                oODRF.Lines.ItemCode      = line.OITM_ItemCode;
                oODRF.Lines.Quantity      = line.RDR1_Quantity;
                oODRF.Lines.WarehouseCode = line.RDR1_WhsCode;
                oODRF.Lines.BaseType      = 17;
                oODRF.Lines.BaseEntry     = t32.ORDR_DocEntry;//rs.GetFieldValue("DocNum").ToInt();
                oODRF.Lines.BaseLine      = line.RDR1_LineNum;
                oODRF.Lines.Add();
            }
            //using (var rs = new MyRecordSet())
            //{
            //    rs.DoQuery(Properties.Querys.ItensAberto_RDR1_1, t32.ORDR_DocEntry);
            //    while (rs.HasNext())
            //    {
            //        ////////////////////////////////////
            //        oODRF.Lines.ItemCode = rs.GetFieldValue("ItemCode").ToString();
            //        oODRF.Lines.Quantity = rs.GetFieldValue("diff").ToDouble() < rs.GetFieldValue("Quantity").ToDouble() ;
            //        //oODRF.Lines.Price = rs.GetFieldValue("Price").ToDouble();
            //        //oODRF.Lines.WarehouseCode = rs.GetFieldValue("WhsCode").ToString();
            //        oODRF.Lines.BaseType = rs.GetFieldValue("ObjType").ToInt();
            //        oODRF.Lines.BaseEntry = t32.ORDR_DocEntry;//rs.GetFieldValue("DocNum").ToInt();
            //        oODRF.Lines.BaseLine = rs.GetFieldValue("LineNum").ToInt();
            //        oODRF.Lines.Add();
            //    }
            //}

            oODRF.SalesPersonCode = t32.JOMAR_OIM;

            if (oODRF.Add() != 0)
            {
                t32.ReadBySAP = 'E';
                t32.MSG_SAP   = SAPConnection.DI.GetLastErrorDescription();

                foreach (var line in t32.Lines)
                {
                    line.ReadBySAP = 'E';

                    using (var rs = new MyRecordSet())
                    {
                        rs.DoQuery("SELECT TrgetEntry FROM RDR1 WHERE TargetType = '13' AND LineNum = '{0}' AND DocEntry = '{1}'", line.Jomar_LineNum, t32.ORDR_DocEntry);
                        if (rs.HasNext())
                        {
                            line.OINV_DocEntry = rs.GetFieldValue("TrgetEntry").ToInt();
                            line.ReadBySAP     = 'Y';
                        }
                        else
                        {
                            line.OINV_DocEntry = 0;
                        }
                    }

                    line.OINV_DocEntry = 0;
                    line.MSG_SAP       = SAPConnection.DI.GetLastErrorDescription();
                }

                T32DAO.UpdateStatus(t32, true);

                if (SAPConnection.DI.InTransaction)
                {
                    SAPConnection.DI.EndTransaction(BoWfTransOpt.wf_RollBack);
                }
            }
            else
            {
                var oinv = SAPConnection.GetNewKey();
                var msg  = "SUCESSO - Nota Fiscal Criada com sucesso.";
                foreach (var line in t32.Lines)
                {
                    line.ReadBySAP     = 'Y';
                    line.OINV_DocEntry = oinv;
                    line.MSG_SAP       = msg;
                }

                T32DAO.UpdateStatus(t32, true);
            }
        }
Example #5
0
        /// <summary>
        /// Obtem os dados para criar um novo Pedido de Venda e Nota Fiscal (Rascunho).
        /// </summary>
        /// <returns></returns>
        public static List <T32Entity> GetNewORDR()
        {
            var t32list = new List <T32Entity>();

            using (var rs_lines = new MyRecordSet())
            {
                rs_lines.DoQuery("SELECT * FROM [Sage_Transacoes32L1] WITH (NOLOCK)  WHERE ReadBySAP <> 'Y' AND (ORDR_DocEntry <= 0 OR ORDR_DocEntry IS NULL) ORDER BY JOMAR_OrderNum ASC");

                var t32     = new T32Entity();
                var t32line = new T32EntityLine();

                var control = -1;
                while (rs_lines.HasNext())
                {
                    try
                    {
                        if (control == -1)                                              // Controle Inicial
                        {
                            control = rs_lines.GetFieldValue("JOMAR_OrderNum").ToInt(); // Nº da ordem no controle
                        }
                        else if (control != rs_lines.GetFieldValue("JOMAR_OrderNum").ToInt())
                        {
                            t32list.Add(t32);                                           // Guarda o pacote na lista
                            t32     = new T32Entity();                                  // Cria um novo header
                            control = rs_lines.GetFieldValue("JOMAR_OrderNum").ToInt(); // Nº da ordem no controle
                        }

                        #region Linhas
                        t32line = new T32EntityLine();

                        t32line.Id              = rs_lines.GetFieldValue("JOMAR_OrderNum").ToInt();
                        t32line.JOMAR_OrderNum  = rs_lines.GetFieldValue("JOMAR_OrderNum").ToInt();
                        t32line.ReadBySAP       = rs_lines.GetFieldValue("ReadBySAP").ToChar();
                        t32line.Jomar_LineNum   = rs_lines.GetFieldValue("Jomar_LineNum").ToInt();
                        t32line.ORDR_DocEntry   = rs_lines.GetFieldValue("ORDR_DocEntry").ToInt();
                        t32line.OINV_DocEntry   = rs_lines.GetFieldValue("OINV_DocEntry").ToInt();
                        t32line.OITM_CodeBars   = rs_lines.GetFieldValue("OITM_CodeBars").ToString();
                        t32line.RDR1_Quantity   = rs_lines.GetFieldValue("RDR1_Quantity").ToDouble();
                        t32line.RDR1_WhsCode    = rs_lines.GetFieldValue("RDR1_WhsCode").ToString();
                        t32line.JOMAR_Peso      = rs_lines.GetFieldValue("JOMAR_Peso").ToDouble();
                        t32line.SalesOrderIndex = rs_lines.GetFieldValue("SalesOrderIndex").ToInt();
                        t32line.MSG_SAP         = rs_lines.GetFieldValue("MSG_SAP").ToString();
                        #endregion

                        var rs_header = new MyRecordSet();

                        rs_header.DoQuery("SELECT * FROM [Sage_Transacoes32] WITH (NOLOCK) WHERE JOMAR_OrderNum = '{0}'", rs_lines.GetFieldValue("JOMAR_OrderNum").ToInt());
                        {
                            #region Cabeçalho
                            if (t32line.JOMAR_OrderNum != t32.JOMAR_OrderNum)
                            {
                                t32.Id               = rs_lines.GetFieldValue("JOMAR_OrderNum").ToInt();
                                t32.JOMAR_OrderNum   = rs_header.GetFieldValue("JOMAR_OrderNum").ToInt();
                                t32.ReadBySAP        = rs_header.GetFieldValue("ReadBySAP").ToChar();
                                t32.TransactionType  = rs_header.GetFieldValue("TransactionType").ToInt();
                                t32.JOMAR_OIM        = rs_header.GetFieldValue("JOMAR_OIM").ToInt();
                                t32.ORDR_DocEntry    = rs_header.GetFieldValue("ORDR_DocEntry").ToInt();
                                t32.JOMAR_CardCode   = rs_header.GetFieldValue("JOMAR_CardCode").ToString();
                                t32.ORDR_DocDate     = rs_header.GetFieldValue("ORDR_DocDate").ToDate();
                                t32.ORDR_DocDueDate  = rs_header.GetFieldValue("ORDR_DocDueDate").ToDate();
                                t32.ORDR_TaxDate     = rs_header.GetFieldValue("ORDR_TaxDate").ToDate();
                                t32.ORDR_NumAtCard   = rs_header.GetFieldValue("ORDR_NumAtCard").ToString();
                                t32.ORDR_BplId       = rs_header.GetFieldValue("ORDR_BplId").ToInt();
                                t32.ORDR_Comments    = rs_header.GetFieldValue("ORDR_Comments").ToString();
                                t32.SalesHeaderIndex = rs_header.GetFieldValue("SalesHeaderIndex").ToInt();
                                t32.MSG_SAP          = rs_header.GetFieldValue("MSG_SAP").ToString();
                            }
                            #endregion
                        }

                        t32line.ORDR_DocEntry = t32.ORDR_DocEntry;
                    }
                    catch (Exception ex)
                    {
                        principal.GravaAudit(ex.Message.ToString());
                    }

                    t32.Lines.Add(t32line);
                }

                // Pega o ultimo que sobra
                if (rs_lines.CountLines() > 0)
                {
                    t32list.Add(t32);
                }
            }


            return(t32list);
        }