コード例 #1
0
        public static eCardType GetCardTypeBy(this eDocumentObjectType pObjectType)
        {
            switch (pObjectType)
            {
            case eDocumentObjectType.oInvoices:
            case eDocumentObjectType.oCorrectionInvoice:
            case eDocumentObjectType.oCorrectionInvoiceReversal:
            case eDocumentObjectType.oInvoicesReserve:
            case eDocumentObjectType.oCreditNotes:
            case eDocumentObjectType.oDeliveryNotes:
            case eDocumentObjectType.oReturns:
            case eDocumentObjectType.oOrders:
            case eDocumentObjectType.oQuotations:
                return(eCardType.Customer);

            case eDocumentObjectType.oPurchaseInvoices:
            case eDocumentObjectType.oCorrectionPurchaseInvoice:
            case eDocumentObjectType.oCorrectionPurchaseInvoiceReversal:
            case eDocumentObjectType.oPurchaseInvoicesReserve:
            case eDocumentObjectType.oPurchaseCreditNotes:
            case eDocumentObjectType.oPurchaseDeliveryNotes:
            case eDocumentObjectType.oPurchaseReturns:
            case eDocumentObjectType.oPurchaseOrders:
            case eDocumentObjectType.oPurchaseDownPayments:
            case eDocumentObjectType.oDownPayments:
            case eDocumentObjectType.oPurchaseQuotations:
                return(eCardType.Vendor);

            default:
                return(eCardType.None);
            }
        }
コード例 #2
0
ファイル: Document.cs プロジェクト: carvalho2209/orm-privado
 /// <summary>
 /// Instancia um novo documento
 /// </summary>
 /// <param name="pCompanyDb">Banco de dados da empresa</param>
 /// <param name="pDocumentObjectType">Tipo do Objeto</param>
 public Document(string pCompanyDb, eDocumentObjectType pDocumentObjectType)
     : base(pCompanyDb, "O" + pDocumentObjectType.GetTableNameSufix())
 {
     Expenses            = new List <DocumentAdditionalExpenses>();
     DocumentRefenceList = new List <DocumentReferenceInformation>();
     Lines              = new List <Line>();
     TaxExtension       = new DocumentTaxExtension(pCompanyDb, pDocumentObjectType);
     DownPaymentsToDraw = new List <DocumentDownPaymentsToDraw>();
 }
コード例 #3
0
        public static bool IsDocumentReserve(eDocumentObjectType pObjectType)
        {
            switch (pObjectType)
            {
            case eDocumentObjectType.oInvoicesReserve:
            case eDocumentObjectType.oPurchaseInvoicesReserve:
                return(true);

            default:
                return(false);
            }
        }
コード例 #4
0
        public static bool WasCreatedInSap9(string companyDb, eDocumentObjectType documentObjectType, int docEntry)
        {
            var query = string.Format(
                @"Select 
	                1
                From
	                {0} T0 
                Where 
	                Replace(T0.VersionNum,'.','')  >= '{1}%' And T0.DocEntry = {2}"    ,
                documentObjectType.GetTableNameMaster(companyDb), Sap9Pl4, docEntry);

            return(Connection.Instance.SqlExecuteScalar <int>(query) > 0);
        }
コード例 #5
0
ファイル: Line.cs プロジェクト: carvalho2209/orm-privado
        public Line(string pCompanyDb, eDocumentObjectType pObjectType)
            : base(pCompanyDb, pObjectType.GetTableNameSufix() + "1")
        {
            ObjType              = pObjectType;
            TaxAmounts           = new List <DocumentTaxAmount>();
            BatchNumbes          = new List <BatchNumber>();
            WithholdingTaxes     = new List <DocumentWithholdingTax>();
            SerialNumbers        = new List <LineSerialNumber>();
            BatchNumberForDrafts = new List <BatchNumberBase>();
            AdditionalExpenses   = new List <DocumentLinesAdditionalExpenses>();

            AddUomEntryIfNeeded();
        }
コード例 #6
0
ファイル: B1Helper.cs プロジェクト: carvalho2209/orm-privado
        /// <summary>
        /// Pega um documento de marketing
        /// </summary>
        /// <param name="pDocEntry">Código do Docuemnto</param>
        /// <param name="pDocType">Tipo do Documento</param>
        /// <param name="pCompanyDB">Empresa</param>
        /// <returns>Um documento de marketing</returns>
        public static Document GetDocument(Int32 pDocEntry, eDocumentObjectType pDocType, string pCompanyDB)
        {
            pCompanyDB.CheckForArgumentNull("pCompanyDb");

            var doc = new Document(pCompanyDB, pDocType);

            if (doc.GetByKey(pDocEntry))
            {
                return(doc);
            }

            var message = string.Format(DontFindText1Key, pDocType.GetName(), pDocEntry);

            throw new Exception(message);
        }
コード例 #7
0
ファイル: B1Helper.cs プロジェクト: carvalho2209/orm-privado
        /// <summary>
        /// Pega uma linha de um documenot
        /// </summary>
        /// <param name="docType">Tipo de Objeto</param>
        /// <param name="pDocEntry">Código do Documento</param>
        /// <param name="pLineNum">Linha do Documento</param>
        /// <param name="pCompanyDB">Banco de Dados</param>
        /// <returns>um território preenchido</returns>
        /// <exception cref="ArgumentNullException">Null passado com parametro</exception>
        /// <exception cref="Exception">Não encontro o registro</exception>
        public static Line GetLine(eDocumentObjectType docType, int pDocEntry, int pLineNum, string pCompanyDB)
        {
            pCompanyDB.CheckForArgumentNull("pCompanyDb");

            var line = new Line(pCompanyDB, docType);

            if (!line.GetByKey(pDocEntry, pLineNum))
            {
                throw new Exception((
                                        DontFindText2Key.Fmt(
                                            "Linha do {0}".Fmt(docType.GetName()),
                                            pDocEntry, "Linha", pLineNum)));
            }

            return(line);
        }
コード例 #8
0
 public DocumentTaxExtension(string pCompanyDb, eDocumentObjectType pDocumentObjectType)
     : base(pCompanyDb, pDocumentObjectType.GetTableNameSufix() + "12")
 {
 }
コード例 #9
0
        public static string GetName(this eDocumentObjectType pObjectType)
        {
            string mResult = null;

            switch (pObjectType)
            {
            case eDocumentObjectType.oInvoices:
                mResult = "Nota Fiscal de Saída";
                break;

            case eDocumentObjectType.oCorrectionInvoice:
                mResult = "";
                break;

            case eDocumentObjectType.oCorrectionInvoiceReversal:
                mResult = "";
                break;

            case eDocumentObjectType.oInvoicesReserve:
                mResult = "Nota Fiscal Saída ( Reserva / Futura )";

                break;

            case eDocumentObjectType.oCreditNotes:
                mResult = "Nota Fiscal de Saída ( Devolução )";

                break;

            case eDocumentObjectType.oDeliveryNotes:
                mResult = "Entrega de Mercadoria";

                break;

            case eDocumentObjectType.oReturns:
                mResult = "Devolução de Entrega de Mercadoria";

                break;

            case eDocumentObjectType.oOrders:
                mResult = "Pedido de Venda";

                break;

            case eDocumentObjectType.oPurchaseInvoices:
                mResult = "Nota Fiscal de Entrada";
                break;

            case eDocumentObjectType.oPurchaseInvoicesReserve:
                mResult = "Nota Fiscal de Entrada ( Reserva / Futura )";
                break;

            case eDocumentObjectType.oCorrectionPurchaseInvoice:
                mResult = "";
                break;

            case eDocumentObjectType.oCorrectionPurchaseInvoiceReversal:
                mResult = "";

                break;

            case eDocumentObjectType.oPurchaseCreditNotes:
                mResult = "Nota Fiscal de Entrada (Devolução)";
                break;

            case eDocumentObjectType.oPurchaseDeliveryNotes:
                mResult = "Recebimento de Mercadoria";
                break;

            case eDocumentObjectType.oPurchaseReturns:
                mResult = "Devolução de Mercadorias";
                break;

            case eDocumentObjectType.oPurchaseOrders:
                mResult = "Pedido de Compra";
                break;

            case eDocumentObjectType.oPurchaseQuotations:
                mResult = "Oferta de Compra";
                break;

            case eDocumentObjectType.oQuotations:
                mResult = "Cotação";

                break;

            case eDocumentObjectType.oInventoryGenEntry:
                mResult = "Entrada de Mercadoria";

                break;

            case eDocumentObjectType.oInventoryGenExit:
                mResult = "Saída de Mercadoria";

                break;

            case eDocumentObjectType.oDrafts:
                mResult = "Esboço de Documentos";

                break;

            case eDocumentObjectType.oDownPayments:
                mResult = "Adiantamento a Cliente";

                break;

            case eDocumentObjectType.oPurchaseDownPayments:
                mResult = "Adiantamento para Fornecedor";

                break;

            default:
                mResult = "Não selecionado";
                break;
            }

            return(mResult);
        }
コード例 #10
0
 public LineSerialAndBatch(string companyDb, eDocumentObjectType documentObjectType)
     : base(companyDb, documentObjectType.GetTableNameSufix() + "16")
 {
 }
コード例 #11
0
 public DocumentTaxAmount(string pCompanyDb, eDocumentObjectType pDocumentObjectType)
     : base(pCompanyDb, string.Format("{0}{1}", pDocumentObjectType.GetTableNameSufix(), "4"))
 {
 }
コード例 #12
0
 public DocumentReferenceInformation(string pCompanyDb, eDocumentObjectType pDocumentObjectType)
     : base(pCompanyDb, pDocumentObjectType.GetTableNameSufix() + "21")
 {
     this.ObjType = pDocumentObjectType;
 }
コード例 #13
0
 public Installment(string pCompanyDb, eDocumentObjectType pDocumentObjectType)
     : base(pCompanyDb, pDocumentObjectType.GetTableNameSufix() + "6")
 {
 }
コード例 #14
0
        public static string GetTableNameSufix(this eDocumentObjectType pObjectType)
        {
            string mResult = string.Empty;

            switch (pObjectType)
            {
            case eDocumentObjectType.oInvoices:
            case eDocumentObjectType.oCorrectionInvoice:
            case eDocumentObjectType.oCorrectionInvoiceReversal:
            case eDocumentObjectType.oInvoicesReserve:
                // OINV
                mResult = "INV";

                break;

            case eDocumentObjectType.oCreditNotes:
                // ORIN
                mResult = "RIN";

                break;

            case eDocumentObjectType.oDeliveryNotes:
                // ODLN
                mResult = "DLN";

                break;

            case eDocumentObjectType.oReturns:
                // ORDN
                mResult = "RDN";

                break;

            case eDocumentObjectType.oOrders:
                // eDocumentObjectType.RDR
                mResult = "RDR";

                break;

            case eDocumentObjectType.oQuotations:
                // eDocumentObjectType.QUT
                mResult = "QUT";

                break;

            case eDocumentObjectType.oPurchaseInvoices:
            case eDocumentObjectType.oCorrectionPurchaseInvoice:
            case eDocumentObjectType.oCorrectionPurchaseInvoiceReversal:
            case eDocumentObjectType.oPurchaseInvoicesReserve:
                // eDocumentObjectType.PCH
                mResult = "PCH";

                break;

            case eDocumentObjectType.oPurchaseCreditNotes:
                // eDocumentObjectType.RPC
                mResult = "RPC";

                break;

            case eDocumentObjectType.oPurchaseDeliveryNotes:
                // eDocumentObjectType.PDN
                mResult = "PDN";

                break;

            case eDocumentObjectType.oPurchaseReturns:
                // eDocumentObjectType.RPD
                mResult = "RPD";

                break;

            case eDocumentObjectType.oPurchaseOrders:
                // eDocumentObjectType.POR
                mResult = "POR";

                break;

            case eDocumentObjectType.oInventoryGenEntry:
                // eDocumentObjectType.IGN
                mResult = "IGN";

                break;

            case eDocumentObjectType.oInventoryGenExit:
                // eDocumentObjectType.IGE
                mResult = "IGE";

                break;

            case eDocumentObjectType.oDrafts:
                // eDocumentObjectType.DRF
                mResult = "DRF";

                break;

            case eDocumentObjectType.oPurchaseDownPayments:
                // eDocumentObjectType.DPO
                mResult = "DPO";

                break;

            case eDocumentObjectType.oDownPayments:
                // eDocumentObjectType.DPI
                mResult = "DPI";

                break;

            case eDocumentObjectType.oStockUpdate:
                mResult = "";
                break;

            case eDocumentObjectType.oPurchaseQuotations:
                mResult = "PQT";
                break;
            }

            return(mResult);
        }
コード例 #15
0
 public static string GetTableNameMaster(this eDocumentObjectType pObjectType)
 {
     return("[O" + GetTableNameSufix(pObjectType) + "]");
 }
コード例 #16
0
 public static string GetTableNameLines(this eDocumentObjectType pObjectType, string pCompanyDB)
 {
     return("[" + pCompanyDB + "].." + pObjectType.GetTableNameLines());
 }
コード例 #17
0
 public static string GetTableNameLines(this eDocumentObjectType pObjectType)
 {
     return("[" + GetTableNameSufix(pObjectType) + "1]");
 }
コード例 #18
0
        public static eTransactionType GetDocTransactionType(this eDocumentObjectType pObjectType)
        {
            var transType = eTransactionType.oCopy;

            switch (pObjectType)
            {
            case eDocumentObjectType.oInvoices:
            case eDocumentObjectType.oCorrectionInvoice:
            case eDocumentObjectType.oCorrectionInvoiceReversal:
            case eDocumentObjectType.oInvoicesReserve:
                transType = eTransactionType.oOut;

                break;

            case eDocumentObjectType.oCreditNotes:
                transType = eTransactionType.oIn;

                break;

            case eDocumentObjectType.oDeliveryNotes:
                transType = eTransactionType.oOut;

                break;

            case eDocumentObjectType.oReturns:
                transType = eTransactionType.oIn;

                break;

            case eDocumentObjectType.oOrders:
                transType = eTransactionType.oOut;

                break;

            case eDocumentObjectType.oPurchaseInvoices:
            case eDocumentObjectType.oCorrectionPurchaseInvoice:
            case eDocumentObjectType.oCorrectionPurchaseInvoiceReversal:
            case eDocumentObjectType.oPurchaseInvoicesReserve:
                transType = eTransactionType.oIn;

                break;

            case eDocumentObjectType.oPurchaseCreditNotes:
                transType = eTransactionType.oOut;

                break;

            case eDocumentObjectType.oPurchaseDeliveryNotes:
                transType = eTransactionType.oIn;

                break;

            case eDocumentObjectType.oPurchaseReturns:
                transType = eTransactionType.oOut;
                break;

            case eDocumentObjectType.oPurchaseQuotations:
                transType = eTransactionType.oOut;
                break;

            case eDocumentObjectType.oPurchaseOrders:
                transType = eTransactionType.oIn;

                break;

            case eDocumentObjectType.oQuotations:
                transType = eTransactionType.oOut;

                break;

            case eDocumentObjectType.oInventoryGenEntry:
                transType = eTransactionType.oIn;

                break;

            case eDocumentObjectType.oInventoryGenExit:
                transType = eTransactionType.oIn;

                break;

            case eDocumentObjectType.oDrafts:
                transType = eTransactionType.oCopy;

                break;

            case eDocumentObjectType.oDownPayments:
                transType = eTransactionType.oOut;

                break;

            case eDocumentObjectType.oPurchaseDownPayments:
                transType = eTransactionType.oIn;

                break;
            }

            return(transType);
        }
コード例 #19
0
ファイル: B1Helper.cs プロジェクト: carvalho2209/orm-privado
        /// <summary>
        /// Pega os lotes de uma linha do documento
        /// </summary>
        /// <param name="pCompanyb">Nome do Banco de Dados</param>
        /// <param name="pItemCode">Código do Item</param>
        /// <param name="pWhsCode">Depósito</param>
        /// <param name="pDocEntry">Número do Documento</param>
        /// <param name="pLineNum">Linha do docuemnto</param>
        /// <param name="pDocType">Tipo do Documento</param>
        /// <param name="ignoreStock">Ignorar movimento de estoque</param>
        /// <returns>Retorna uma lista de documentos</returns>
        public static List <BatchNumberTrans> GetBatchNumbers(
            string pCompanyb,
            string pItemCode,
            string pWhsCode,
            int pDocEntry,
            int pLineNum,
            eDocumentObjectType pDocType,
            bool ignoreStock = false)
        {
            var query = @"
                SELECT		
                        MIN(b.LogEntry)		as LogEntry,
		                MIN(b.ItemCode)		as [ItemCode],
		                MIN(c.DistNumber)	as [BatchNum],
		                MIN(b.LocCode)		as [WhsCode],
		                MIN(b.ItemName)		as [ItemName],
		                MIN(b.ApplyType)	as [BaseType],      
		                MIN(b.ApplyEntry)	as [BaseEntry],
		                MIN(b.AppDocNum)	as [BaseNum],
		                MIN(b.ApplyLine)	as [BaseLinNum],
		                MIN(b.DocDate)		as [DocDate],
		                (								 
			                CASE WHEN ABS(SUM(a.Quantity)) = 0 THEN SUM(a.AllocQty)
			                ELSE ABS(SUM(a.Quantity)) END
		                )					as [Quantity],
		                MIN(b.CardCode)		as [CardCode],
		                MIN(b.CardName)		as [CardName],
		                (
			                CASE WHEN  SUM(a.Quantity) > 0 THEN 0
			                WHEN SUM(a.Quantity) < 0 THEN 1
			                ELSE 2 END
		                )					as [Direction],
		                MIN(b.CreateDate)	as [CreateDate],
		                MIN(b.BaseType)		as [BsDocType],
		                MIN(b.BaseEntry)	as [BsDocEntry],
		                MIN(b.BaseLine)		as [BsDocLine],
		                'N'				as [DataSource],
		                NULL				as [UserSign]
                FROM		[{0}]..ITL1 a
                INNER JOIN	[{0}]..OITL b ON a.LogEntry = b.LogEntry
                INNER JOIN	[{0}]..OBTN c ON a.ItemCode = c.ItemCode and a.SysNumber = c.SysNumber
                Where b.ApplyEntry = {1} And b.ApplyType = {2} And b.ApplyLine = {3} And b.ItemCode = '{4}' And b.LocCode = '{5}'
                  {6} -- Selecionar somente transacao que baixa do estoque, eliminando no caso, o pedido de venda
                GROUP BY	b.ItemCode, a.SysNumber, b.ApplyType, b.ApplyEntry, b.ApplyLine, b.LocCode, b.StockEff
                having		(SUM(b.DocQty) <> 0)		-- To exclude those document lines with batch numbers that have been totally deallocated.
                OR			(SUM(b.DefinedQty) <> 0)	-- For the case: batch is on release only and use complete operation to define batch.
                OR			(SUM(b.DocQty) = 0 and b.StockEff = 2 
                and		min(b.BaseType) <> 17 and min(b.BaseType) <> 13 ) -- for the case DLN/INV based on sales order with allocated batch."        ;

            query = String.Format(query, pCompanyb, pDocEntry, pDocType.To <int>(), pLineNum, pItemCode, pWhsCode,
                                  ignoreStock ? "" : "And b.StockEff = 1");

            var data = Connection.Instance.SqlServerQuery(query);

            var batches = new List <BatchNumberTrans>();

            foreach (DataRow dataRow in data.Rows)
            {
                var batch = new BatchNumberTrans(pCompanyb);

                batch.FillFields(dataRow, true);

                batches.Add(batch);
            }

            return(batches);
        }
コード例 #20
0
 public static int ToInt32(this eDocumentObjectType pObjectType)
 {
     return(Convert.ToInt32(pObjectType));
 }
コード例 #21
0
 public LineFreightRow(string pCompanyDb, eDocumentObjectType pDocumentObjectType)
     : base(pCompanyDb, pDocumentObjectType.GetTableNameSufix() + "2")
 {
     this.ObjType = pDocumentObjectType;
 }
コード例 #22
0
 public DocumentDownPaymentsToDraw(string pCompanyDb, eDocumentObjectType pDocumentObjectType)
     : base(pCompanyDb, pDocumentObjectType.GetTableNameSufix() + "9")
 {
 }
コード例 #23
0
ファイル: Line.cs プロジェクト: carvalho2209/orm-privado
 private bool IsDraft(eDocumentObjectType pDocumentObjectType = eDocumentObjectType.oNone)
 {
     return(pDocumentObjectType == eDocumentObjectType.oDrafts ||
            (TableName != null && TableName.Contains("DRF")));
 }
コード例 #24
0
 public DocumentAdditionalExpenses(string pCompanyDb, eDocumentObjectType pDocumentObjectType)
     : base(pCompanyDb, pDocumentObjectType.GetTableNameSufix() + "13")
 {
     this.ObjType = pDocumentObjectType;
 }
コード例 #25
0
 public DocumentWithholdingTax(string pCompanyDb, eDocumentObjectType pDocumentObjectType)
     : base(pCompanyDb, pDocumentObjectType.GetTableNameSufix() + "5")
 {
 }
コード例 #26
0
 public DocumentLinesAdditionalExpenses(string companyDb, eDocumentObjectType documentObjectType)
     : base(companyDb, documentObjectType.GetTableNameSufix() + "2")
 {
     this.ObjType = documentObjectType;
 }