コード例 #1
0
        private IList <DocumentLine> GetLocationTransferDocumentLines(Document doc, Company company, String docID)
        {
            DocumentLine         tmpData;
            IList <DocumentLine> list = new List <DocumentLine>();
            Status lineStatus         = WType.GetStatus(new Status {
                StatusID = DocStatus.New
            });

            int    curLine   = 0;
            string curMaster = "";


            Query = GetErpQuery("TRANSFER_LINE").Replace("__DOCUMENT", docID);

            DataSet ds = ReturnDataSet(Query, null, "TRANSFER_LINE", Command.Connection);

            if (ds == null || ds.Tables.Count == 0)
            {
                return(null);
            }

            try
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    tmpData       = new DocumentLine();
                    tmpData.Date1 = doc.Date1;
                    curMaster     = "";

                    tmpData.LineNumber = (int)double.Parse(dr["f470_rowid"].ToString());
                    tmpData.Sequence   = tmpData.LineNumber;

                    curLine          = tmpData.LineNumber;
                    tmpData.Document = doc;
                    tmpData.IsDebit  = false;
                    tmpData.Quantity = double.Parse(dr["f470_cantidad"].ToString(), new NumberFormatInfo {
                        NumberDecimalSeparator = Separator
                    });
                    tmpData.CreatedBy       = WmsSetupValues.SystemUser;
                    tmpData.CreationDate    = DateTime.Now;
                    tmpData.Note            = dr["f470_notas"].ToString();
                    tmpData.BinAffected     = dr["ubicacion"].ToString();
                    tmpData.PostingUserName = dr["f470_id_un_movto"].ToString();



                    tmpData.LineStatus = lineStatus;

                    //Location de donde proviene la mercancia
                    curMaster        = "Location:" + dr["bodega_entrada"].ToString();
                    tmpData.Location = WType.GetLocation(new Location {
                        Company = company, ErpCode = dr["bodega_entrada"].ToString()
                    });

                    //Lcation a donde va la mercancia
                    curMaster         = "Location To:" + dr["bodega_salida"].ToString();
                    tmpData.Location2 = WType.GetLocation(new Location {
                        Company = company, ErpCode = dr["bodega_salida"].ToString()
                    });


                    try
                    {
                        curMaster       = "Product:" + dr["itemext"].ToString();
                        tmpData.Product = WType.GetProduct(new Product {
                            Company = company, ProductCode = dr["f121_rowid_item"].ToString()
                        });
                        tmpData.LineDescription = tmpData.Product.Name;     //dr["ITEMDESC"].ToString();
                        tmpData.AccountItem     = dr["itemext"].ToString(); //ITEM EXT

                        curMaster    = "Uom:" + dr["f470_id_unidad_medida"].ToString();
                        tmpData.Unit = WType.GetUnit(new Unit {
                            ErpCode = dr["f470_id_unidad_medida"].ToString(), ErpCodeGroup = tmpData.Product.BaseUnit.ErpCodeGroup
                        });
                    }
                    catch (Exception ex)
                    {
                        ExceptionMngr.WriteEvent("GetLocationTransferDocumentLines: " + doc.DocNumber + "," + curLine.ToString() + "," + curMaster,
                                                 ListValues.EventType.Error, ex, null, ListValues.ErrorCategory.ErpConnection);
                        continue;

                        //    //Pone el Default Product
                        //    tmpData.Product = WType.GetProduct(new Product { Company = company, ProductCode = WmsSetupValues.DEFAULT });
                        //    tmpData.LineDescription = "Unknown: " + dr["ITEMNMBR"].ToString();

                        //    curMaster = "Uom:" + dr["UOFM"].ToString();
                        //    tmpData.Unit = WType.GetUnit(new Unit { ErpCode = dr["UOFM"].ToString() });
                    }



                    list.Add(tmpData);
                }

                return((list.Count > 0) ? list : null);
            }
            catch (Exception ex)
            {
                ExceptionMngr.WriteEvent("GetTransferDocumentLines: " + doc.DocNumber + "," + curLine.ToString() + "," + curMaster,
                                         ListValues.EventType.Error, ex, null, ListValues.ErrorCategory.ErpConnection);
                //throw;
                return(null);
            }
        }
コード例 #2
0
        private IList <DocumentLine> GetKitAssemblyDocumentLines(Document doc)
        {
            DocumentLine         tmpData;
            IList <DocumentLine> list = new List <DocumentLine>();
            Status lineStatus         = WType.GetStatus(new Status {
                StatusID = DocStatus.New
            });


            int    curLine   = 1;
            string curMaster = "";


            Query = GetErpQuery("KITDOC_LINE").Replace("__DOCUMENT", doc.ErpMaster.ToString());

            DataSet ds = ReturnDataSet(Query, null, "KITDOC_LINE", Command.Connection);

            if (ds == null || ds.Tables.Count == 0)
            {
                return(null);
            }


            if (ds.Tables[0].Select("rowid=0").Length == 0)
            {
                return(null);
            }

            try
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    tmpData       = new DocumentLine();
                    tmpData.Date1 = doc.Date1;

                    tmpData.LineNumber        = int.Parse(dr["rowid"].ToString()); //curLine++;
                    tmpData.Sequence          = tmpData.LineNumber;
                    tmpData.LinkDocLineNumber = int.Parse(dr["row_padre"].ToString());
                    tmpData.Note = dr["type"].ToString();

                    //TODO: Revisar el Status en GP para traer el equivalente
                    tmpData.LineStatus   = lineStatus;
                    tmpData.Document     = doc;
                    tmpData.IsDebit      = false;
                    tmpData.Quantity     = double.Parse(dr["f470_cant_base"].ToString(), ListValues.DoubleFormat());
                    tmpData.CreatedBy    = WmsSetupValues.SystemUser;
                    tmpData.CreationDate = DateTime.Now;

                    curMaster        = "Location";
                    tmpData.Location = doc.Location; //WType.GetLocation(new Location { Company = CurCompany, ErpCode = dr["LOCNCODE"].ToString() });

                    try
                    {
                        curMaster       = "Product";
                        tmpData.Product = WType.GetProduct(new Product {
                            Company = CurCompany, ProductCode = dr["item_id"].ToString()
                        });;

                        curMaster    = "Unit";
                        tmpData.Unit = WType.GetUnit(new Unit {
                            ErpCode = dr["unit_id"].ToString(), ErpCodeGroup = tmpData.Product.BaseUnit.ErpCodeGroup
                        });
                    }
                    catch (Exception ex)
                    {
                        ExceptionMngr.WriteEvent("GetKitAssemblyDocumentLines: " + doc.DocNumber + "," + curLine.ToString() + "," + curMaster,
                                                 ListValues.EventType.Error, ex, null, ListValues.ErrorCategory.ErpConnection);
                        continue;
                        //{
                        //    //Pone el Default Product
                        //    tmpData.Product = WType.GetProduct(new Product { Company = CurCompany, ProductCode = WmsSetupValues.DEFAULT });
                        //    tmpData.LineDescription = "Unknown: " + dr["ITEMNMBR"].ToString() + ", " + dr["ITEMDESC"].ToString();

                        //    curMaster = "Unit";
                        //    tmpData.Unit = WType.GetUnit(new Unit { ErpCode = dr["UOFM"].ToString() });
                    }

                    list.Add(tmpData);
                }

                return((list.Count > 0) ? list : null);
            }
            catch (Exception ex)
            {
                ExceptionMngr.WriteEvent("GetKitAssemblyDocumentLines: " + doc.DocNumber + "," + curLine.ToString() + "," + curMaster,
                                         ListValues.EventType.Error, ex, null, ListValues.ErrorCategory.ErpConnection);
                throw;
                //return null;
            }
        }
コード例 #3
0
        public IList <ProductStock> GetErpStock(ProductStock data, bool detailed)
        {
            IList <ProductStock> result = new List <ProductStock>();

            try
            {
                Command.Connection = new SqlConnection(CurCompany.ErpConnection.CnnString);
                Command.Connection.Open();

                string sQuery, table, sWhere = "";
                if (detailed)
                {
                    sQuery = "SELECT * FROM IV00112 WHERE (QUANTITY > 0 OR ATYALLOC > 0) ";  //IV00112 Tabla detallada de produto por BIN
                    table  = "IV00112";
                }
                else
                {
                    sQuery = "SELECT * FROM IV00102 WHERE RCRDTYPE = 2 AND QTYONHND > 0 ";
                    table  = "IV00102";
                }


                if (data.Product != null && data.Product.ProductID != 0)
                {
                    sWhere += " AND ITEMNMBR = '" + data.Product.ProductCode + "'";
                }


                if (data.Bin != null && data.Bin.BinID != 0 && detailed)
                {
                    sWhere += " AND BIN = '" + data.Bin.BinCode + "'";
                }


                if (data.Bin != null && data.Bin.Location != null && data.Bin.Location.LocationID != 0)
                {
                    sWhere += " AND LOCNCODE = '" + data.Bin.Location.ErpCode + "'";
                }

                ds = ReturnDataSet(sQuery + sWhere, "", table, Command.Connection);

                if (ds == null || ds.Tables[0] == null || ds.Tables[0].Rows.Count == 0)
                {
                    return(null);
                }


                //Creado el Ilist De ProductStock
                ProductStock record;
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    try
                    {
                        record         = new ProductStock();
                        record.Product = WType.GetProduct(new Product {
                            Company = CurCompany, ProductCode = dr["ITEMNMBR"].ToString()
                        });;

                        if (detailed)
                        {
                            record.Bin = new Bin {
                                BinCode = dr["BIN"].ToString(), Location = data.Bin.Location
                            };
                            record.Stock     = double.Parse(dr["QUANTITY"].ToString());
                            record.PackStock = double.Parse(dr["ATYALLOC"].ToString());
                        }
                        else
                        {
                            record.Bin = new Bin {
                                BinCode = DefaultBin.MAIN, Location = data.Bin.Location
                            };
                            record.Stock     = double.Parse(dr["QTYONHND"].ToString());
                            record.PackStock = double.Parse(dr["ATYALLOC"].ToString());
                        }

                        result.Add(record);
                    }
                    catch { }
                }



                return(result);
            }
            catch (Exception ex)
            {
                ExceptionMngr.WriteEvent("GetErpStock", ListValues.EventType.Error, ex, null, ListValues.ErrorCategory.ErpConnection);
                //throw;
                return(null);
            }
        }
コード例 #4
0
        private IList <DocumentLine> GetShippingDocumentLines(Document doc, Company company, string docID, bool useRemain)
        {
            DocumentLine         tmpData;
            IList <DocumentLine> list = new List <DocumentLine>();
            Status lineStatus         = WType.GetStatus(new Status {
                StatusID = DocStatus.New
            });


            int    curLine   = 0;
            string curMaster = "";


            try
            {
                Query = GetErpQuery("SALESORDER_LINE").Replace("__DOCUMENT", docID);

                DataSet ds = ReturnDataSet(Query, null, "SALESORDER_LINE", Command.Connection);

                if (ds == null || ds.Tables.Count == 0)
                {
                    return(null);
                }



                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    tmpData       = new DocumentLine();
                    tmpData.Date1 = doc.Date1;
                    curMaster     = "";

                    try { tmpData.Date2 = DateTime.Parse(dr["f431_fecha_entrega"].ToString()); }
                    catch { }
                    try { tmpData.Date3 = DateTime.Parse(dr["f431_fecha_cumplido"].ToString()); }
                    catch { }

                    tmpData.LineNumber = int.Parse(dr["f431_rowid"].ToString());
                    tmpData.Sequence   = tmpData.LineNumber;
                    curLine            = tmpData.LineNumber;

                    //TODO: Revisar el Status en GP para traer el equivalente
                    tmpData.LineStatus = GetShippingStatus(0);
                    tmpData.Document   = doc;
                    tmpData.IsDebit    = false;

                    if (useRemain)
                    {
                        tmpData.Quantity = double.Parse(dr["f431_cant_facturada_base"].ToString(), new NumberFormatInfo {
                            NumberDecimalSeparator = Separator
                        });
                    }
                    else
                    {
                        tmpData.Quantity = double.Parse(dr["f431_cant_facturada_base"].ToString(), ListValues.DoubleFormat());
                    }

                    //tmpData.QtyCancel = double.Parse(dr["QTYCANCE"].ToString(), ListValues.DoubleFormat());
                    //tmpData.QtyBackOrder = double.Parse(dr["QTYTBAOR"].ToString(), ListValues.DoubleFormat());
                    //tmpData.QtyPending = tmpData.Quantity - tmpData.QtyCancel - double.Parse(dr["QTYPRINV"].ToString(), ListValues.DoubleFormat());
                    //tmpData.QtyAllocated = double.Parse(dr["ATYALLOC"].ToString(), ListValues.DoubleFormat());
                    tmpData.CreatedBy    = WmsSetupValues.SystemUser;
                    tmpData.CreationDate = DateTime.Now;

                    curMaster        = "Location:" + dr["cod_bodega"].ToString();
                    tmpData.Location = WType.GetLocation(new Location {
                        Company = company, ErpCode = dr["cod_bodega"].ToString()
                    });

                    try
                    {
                        curMaster       = "Product:" + dr["f121_rowid_item"].ToString();
                        tmpData.Product = WType.GetProduct(new Product {
                            Company = company, ProductCode = dr["f121_rowid_item"].ToString()
                        });
                        tmpData.LineDescription = dr["f120_descripcion"].ToString();

                        curMaster    = "Uom:" + dr["f431_id_unidad_medida"].ToString();
                        tmpData.Unit = WType.GetUnit(new Unit {
                            ErpCode = dr["f431_id_unidad_medida"].ToString(), ErpCodeGroup = tmpData.Product.BaseUnit.ErpCodeGroup
                        });
                    }
                    catch
                    {
                        //Pone el Default Product
                        tmpData.Product = WType.GetProduct(new Product {
                            Company = doc.Location.Company, ProductCode = WmsSetupValues.DEFAULT
                        });
                        tmpData.LineDescription = "Unknown: " + dr["f121_rowid_item"].ToString() + ", " + dr["f120_descripcion"].ToString();

                        curMaster    = "Uom:" + dr["f431_id_unidad_medida"].ToString();
                        tmpData.Unit = WType.GetUnit(new Unit {
                            ErpCode = dr["f431_id_unidad_medida"].ToString()
                        });
                    }

                    //Manage Prices
                    curMaster             = "Prices Product:" + dr["f121_rowid_item"].ToString();
                    tmpData.UnitPrice     = double.Parse(dr["f431_precio_unitario_base"].ToString(), ListValues.DoubleFormat());
                    tmpData.ExtendedPrice = double.Parse(dr["subtotal"].ToString(), ListValues.DoubleFormat());

                    //Asignacion de Address
                    curMaster = "Address Doc:" + doc.DocNumber;
                    //tmpData.DocumentLineAddresses = GetShippingDocumentAddress(tmpData.Document, tmpData, dr);


                    list.Add(tmpData);
                }

                return((list.Count > 0) ? list : null);
            }
            catch (Exception ex)
            {
                ExceptionMngr.WriteEvent("GetShippingDocumentLines: " + doc.DocNumber + "," + curLine.ToString() + "," + curMaster,
                                         ListValues.EventType.Error, ex, null, ListValues.ErrorCategory.ErpConnection);
                //throw;
                return(null);
            }
        }
コード例 #5
0
        private IList <DocumentLine> GetKitAssemblyDocumentLines(Document doc)
        {
            DocumentLine         tmpData;
            IList <DocumentLine> list = new List <DocumentLine>();
            Status lineStatus         = WType.GetStatus(new Status {
                StatusID = DocStatus.New
            });


            int    curLine   = 1;
            string curMaster = "";

            // BM10300 - KitAssembly Document Lines
            DataSet ds = ReturnDataSet("SELECT * FROM BM10300 WHERE 1=1 ", "TRX_ID='" + doc.DocNumber + "'", "BM10300", Command.Connection);


            if (ds == null || ds.Tables.Count == 0)
            {
                return(null);
            }


            try
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    tmpData       = new DocumentLine();
                    tmpData.Date1 = doc.Date1;

                    tmpData.LineNumber        = int.Parse(dr["Component_ID"].ToString()); //curLine++;
                    tmpData.Sequence          = tmpData.LineNumber;
                    tmpData.LinkDocLineNumber = int.Parse(dr["Parent_Component_ID"].ToString());
                    tmpData.Note = dr["BM_Component_Type"].ToString();

                    //TODO: Revisar el Status en GP para traer el equivalente
                    tmpData.LineStatus   = lineStatus;
                    tmpData.Document     = doc;
                    tmpData.IsDebit      = false;
                    tmpData.Quantity     = double.Parse(dr["Extended_Standard_Quantity"].ToString(), ListValues.DoubleFormat());
                    tmpData.CreatedBy    = WmsSetupValues.SystemUser;
                    tmpData.CreationDate = DateTime.Now;

                    curMaster        = "Location";
                    tmpData.Location = WType.GetLocation(new Location {
                        Company = CurCompany, ErpCode = dr["LOCNCODE"].ToString()
                    });

                    try
                    {
                        curMaster       = "Product";
                        tmpData.Product = WType.GetProduct(new Product {
                            Company = CurCompany, ProductCode = dr["ITEMNMBR"].ToString()
                        });;

                        curMaster    = "Unit";
                        tmpData.Unit = WType.GetUnit(new Unit {
                            ErpCode = dr["UOFM"].ToString(), ErpCodeGroup = tmpData.Product.BaseUnit.ErpCodeGroup
                        });
                    }
                    catch (Exception ex)
                    {
                        ExceptionMngr.WriteEvent("GetKitAssemblyDocumentLines: " + doc.DocNumber + "," + curLine.ToString() + "," + curMaster,
                                                 ListValues.EventType.Error, ex, null, ListValues.ErrorCategory.ErpConnection);
                        continue;
                        //{
                        //    //Pone el Default Product
                        //    tmpData.Product = WType.GetProduct(new Product { Company = CurCompany, ProductCode = WmsSetupValues.DEFAULT });
                        //    tmpData.LineDescription = "Unknown: " + dr["ITEMNMBR"].ToString() + ", " + dr["ITEMDESC"].ToString();

                        //    curMaster = "Unit";
                        //    tmpData.Unit = WType.GetUnit(new Unit { ErpCode = dr["UOFM"].ToString() });
                    }

                    list.Add(tmpData);
                }

                return((list.Count > 0) ? list : null);
            }
            catch (Exception ex)
            {
                ExceptionMngr.WriteEvent("GetKitAssemblyDocumentLines: " + doc.DocNumber + "," + curLine.ToString() + "," + curMaster,
                                         ListValues.EventType.Error, ex, null, ListValues.ErrorCategory.ErpConnection);
                throw;
                //return null;
            }
        }