Пример #1
0
        private bool bCalculaProdutosExw()
        {
            bool   bRetorno  = false;
            double dSubTotal = 0;

            m_sortLstProdutosEXW = new System.Collections.SortedList();

            // Copiando os Produtos da Fatura Comercial
            for (int i = 0; i < m_sortLstProdutosFatura.Count; i++)
            {
                clsProdutoData cls_DataProduto = (clsProdutoData)m_sortLstProdutosFatura.GetByIndex(i);
                dSubTotal = System.Math.Round(dSubTotal + System.Math.Round(cls_DataProduto.PrecoUnitario * cls_DataProduto.Quantidade, 2), 2);
                m_sortLstProdutosEXW.Add(cls_DataProduto.IdOrdem, cls_DataProduto.Clone());
            }
            return(bRetorno);
        }
Пример #2
0
        private bool bCalculaProdutosRetorno()
        {
            bool   bRetorno = false;
            double dSubTotal = 0, dValorTotalProdutosRestante = 0, dValorTotalProdutos = 0;

            m_sortLstProdutosRetorno = new System.Collections.SortedList();

            // Copiando os Produtos do EXW
            for (int i = 0; i < m_sortLstProdutosEXW.Count; i++)
            {
                clsProdutoData cls_DataProduto = (clsProdutoData)m_sortLstProdutosEXW.GetByIndex(i);
                dSubTotal = System.Math.Round(dSubTotal + System.Math.Round(cls_DataProduto.PrecoUnitario * cls_DataProduto.Quantidade, 2), 2);
                m_sortLstProdutosRetorno.Add(cls_DataProduto.IdOrdem, cls_DataProduto.Clone());
            }

            // Calculando o Valor Total
            switch (m_enumIncotermRetorno)
            {
            case mdlConstantes.Incoterm.EXW:
                dValorTotalProdutos = dSubTotal;
                break;

            case mdlConstantes.Incoterm.FCA:
            case mdlConstantes.Incoterm.FAS:
            case mdlConstantes.Incoterm.FOB:
                dValorTotalProdutos = dSubTotal + m_dFreteInterno + m_dOutros;
                break;

            case mdlConstantes.Incoterm.CFR:
            case mdlConstantes.Incoterm.CPT:
                dValorTotalProdutos = dSubTotal + m_dFreteInterno + m_dFreteInternacional;
                break;

            case mdlConstantes.Incoterm.CIF:
            case mdlConstantes.Incoterm.CIP:
                dValorTotalProdutos = dSubTotal + m_dFreteInterno + m_dFreteInternacional + m_dSeguro;
                break;

            case mdlConstantes.Incoterm.DAF:
            case mdlConstantes.Incoterm.DDP:
            case mdlConstantes.Incoterm.DDU:
            case mdlConstantes.Incoterm.DEQ:
            case mdlConstantes.Incoterm.DES:
                dValorTotalProdutos = dSubTotal + m_dFreteInterno + m_dFreteInternacional + m_dSeguro + m_dOutros;
                break;
            }
            if (!m_bRatiarDesconto)
            {
                dValorTotalProdutos = dValorTotalProdutos - m_dDesconto;
            }
            dValorTotalProdutosRestante = dValorTotalProdutos;

            // Inserindo os Produtos Principais
            double dPrecoUnitarioProduto = 0, dSubTotalProduto = 0;

            for (int nCont = 0; nCont < m_sortLstProdutosRetorno.Count; nCont++)
            {
                clsProdutoData cls_ProdutoData = (clsProdutoData)m_sortLstProdutosRetorno.GetByIndex(nCont);
                CalculaPrecoUnitario(cls_ProdutoData.PrecoUnitario, out dPrecoUnitarioProduto, cls_ProdutoData.Quantidade, dSubTotal, dValorTotalProdutos, ref dValorTotalProdutosRestante, nCont == (m_sortLstProdutosFatura.Count - 1));
                dSubTotalProduto = (dPrecoUnitarioProduto * cls_ProdutoData.Quantidade);
                cls_ProdutoData.PrecoUnitario = dPrecoUnitarioProduto;
            }

            return(bRetorno);
        }