public void vRetornaValores(out System.Collections.ArrayList arlProdutoOrdem, out System.Collections.ArrayList arlProdutosPrecoUnitario, out System.Collections.ArrayList arlProdutosQuantidade) { if (!m_bDataLoaded) { bCarregaDados(); } arlProdutoOrdem = new System.Collections.ArrayList(); arlProdutosPrecoUnitario = new System.Collections.ArrayList(); arlProdutosQuantidade = new System.Collections.ArrayList(); // Calc Fatura if (m_sortLstProdutosFatura == null) { bCalculaProdutosFatura(); } if (m_bFaturaOutput) { // Fatura for (int i = 0; i < m_sortLstProdutosFatura.Count; i++) { clsProdutoData cls_DataProduct = (clsProdutoData)m_sortLstProdutosFatura.GetByIndex(i); arlProdutoOrdem.Add(cls_DataProduct.IdOrdem); arlProdutosPrecoUnitario.Add(cls_DataProduct.PrecoUnitario); arlProdutosQuantidade.Add(cls_DataProduct.Quantidade); } } else { // Calc EXW if (m_sortLstProdutosEXW == null) { bCalculaProdutosExw(); } // Calc Retorno if (m_sortLstProdutosRetorno == null) { bCalculaProdutosRetorno(); } // Retorno for (int i = 0; i < m_sortLstProdutosRetorno.Count; i++) { clsProdutoData cls_DataProduct = (clsProdutoData)m_sortLstProdutosRetorno.GetByIndex(i); arlProdutoOrdem.Add(cls_DataProduct.IdOrdem); arlProdutosPrecoUnitario.Add(cls_DataProduct.PrecoUnitario); arlProdutosQuantidade.Add(cls_DataProduct.Quantidade); } } }
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); }
public void vRetornaValores(int nIdOrdemProduto, out double dPrecoUnitario, out double dQuantidade) { dPrecoUnitario = 0; dQuantidade = 0; if (!m_bDataLoaded) { bCarregaDados(); } // Calc Fatura if (m_sortLstProdutosFatura == null) { bCalculaProdutosFatura(); } if (m_bFaturaOutput) { // Fatura if (m_sortLstProdutosFatura.ContainsKey(nIdOrdemProduto)) { clsProdutoData cls_DataProduct = (clsProdutoData)m_sortLstProdutosFatura[nIdOrdemProduto]; dPrecoUnitario = cls_DataProduct.PrecoUnitario; dQuantidade = cls_DataProduct.Quantidade; } } else { // Calc EXW if (m_sortLstProdutosEXW == null) { bCalculaProdutosExw(); } // Calc Retorno if (m_sortLstProdutosRetorno == null) { bCalculaProdutosRetorno(); } // Retorno if (m_sortLstProdutosRetorno.ContainsKey(nIdOrdemProduto)) { clsProdutoData cls_DataProduct = (clsProdutoData)m_sortLstProdutosRetorno[nIdOrdemProduto]; dPrecoUnitario = cls_DataProduct.PrecoUnitario; dQuantidade = cls_DataProduct.Quantidade; } } }
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); }
private bool bCalculaProdutosFatura() { bool bRetorno = false; double dSubTotal = 0, dValorTotalProdutosRestante = 0, dValorTotalProdutos = 0; m_sortLstProdutosFatura = new System.Collections.SortedList(); // Inserindo os Produtos da Fatura com o preco unitario lancado switch (m_enumDataSource) { case DataSource.FaturaCotacao: foreach (mdlDataBaseAccess.Tabelas.XsdTbProdutosFaturaCotacao.tbProdutosFaturaCotacaoRow dtrwProdutoFaturaCotacao in m_typDatSetProdutosFaturaCotacao.tbProdutosFaturaCotacao.Rows) { if ((dtrwProdutoFaturaCotacao.IsnIdOrdemProdutoParentNull()) || (dtrwProdutoFaturaCotacao.nIdOrdemProdutoParent != 0)) { continue; } clsProdutoData clsDataProduto = new clsProdutoData(dtrwProdutoFaturaCotacao.idOrdem, dtrwProdutoFaturaCotacao.dQuantidade, dtrwProdutoFaturaCotacao.dPrecoUnitario); dSubTotal = System.Math.Round(dSubTotal + System.Math.Round(dtrwProdutoFaturaCotacao.dPrecoUnitario * dtrwProdutoFaturaCotacao.dQuantidade, 2), 2); m_sortLstProdutosFatura.Add(dtrwProdutoFaturaCotacao.idOrdem, clsDataProduto); } break; case DataSource.FaturaProforma: foreach (mdlDataBaseAccess.Tabelas.XsdTbProdutosFaturaProforma.tbProdutosFaturaProformaRow dtrwProdutoFaturaProforma in m_typDatSetProdutosFaturaProforma.tbProdutosFaturaProforma.Rows) { if ((dtrwProdutoFaturaProforma.IsnIdOrdemProdutoParentNull()) || (dtrwProdutoFaturaProforma.nIdOrdemProdutoParent != 0)) { continue; } clsProdutoData clsDataProduto = new clsProdutoData(dtrwProdutoFaturaProforma.idOrdem, dtrwProdutoFaturaProforma.dQuantidade, dtrwProdutoFaturaProforma.dPrecoUnitario); dSubTotal = System.Math.Round(dSubTotal + System.Math.Round(dtrwProdutoFaturaProforma.dPrecoUnitario * dtrwProdutoFaturaProforma.dQuantidade, 2), 2); m_sortLstProdutosFatura.Add(dtrwProdutoFaturaProforma.idOrdem, clsDataProduto); } break; case DataSource.FaturaComercial: foreach (mdlDataBaseAccess.Tabelas.XsdTbProdutosFaturaComercial.tbProdutosFaturaComercialRow dtrwProdutoFaturaComercial in m_typDatSetProdutosFaturaComercial.tbProdutosFaturaComercial.Rows) { if ((dtrwProdutoFaturaComercial.IsnIdOrdemProdutoParentNull()) || (dtrwProdutoFaturaComercial.nIdOrdemProdutoParent != 0)) { continue; } clsProdutoData clsDataProduto = new clsProdutoData(dtrwProdutoFaturaComercial.idOrdem, dtrwProdutoFaturaComercial.dQuantidade, dtrwProdutoFaturaComercial.dPrecoUnitario); decimal dcSubTotalCurrent = (decimal)System.Math.Round(dtrwProdutoFaturaComercial.dPrecoUnitario * dtrwProdutoFaturaComercial.dQuantidade, 2); dSubTotal = dSubTotal + System.Math.Round(dtrwProdutoFaturaComercial.dPrecoUnitario * dtrwProdutoFaturaComercial.dQuantidade, 2); m_sortLstProdutosFatura.Add(dtrwProdutoFaturaComercial.idOrdem, clsDataProduto); } break; } // Total Despesas double dValorTotalDespesas = m_dFreteInterno + m_dFreteInternacional + m_dSeguro + m_dOutros; // Rateio if (m_bCalculos) { if (m_bRatiar) { dValorTotalProdutos = dSubTotal; if (m_bRatiarDesconto) { dValorTotalProdutosRestante = dSubTotal + m_dDesconto; } else { dValorTotalProdutosRestante = dSubTotal - m_dDesconto; } dValorTotalProdutosRestante = dValorTotalProdutosRestante - dValorTotalDespesas; if (dValorTotalProdutosRestante < 0) { dValorTotalProdutosRestante = 0; } dValorTotalProdutos = dValorTotalProdutosRestante; m_dTotalFatura = dValorTotalProdutos + dValorTotalDespesas - m_dDesconto; } else { dValorTotalProdutos = dSubTotal; if (m_bRatiarDesconto) { dValorTotalProdutosRestante = dSubTotal - m_dDesconto; } else { dValorTotalProdutosRestante = dSubTotal; } m_dTotalFatura = dValorTotalProdutos + dValorTotalDespesas - m_dDesconto; dValorTotalProdutos = dValorTotalProdutosRestante; } } else { dValorTotalProdutos = dSubTotal; dValorTotalProdutosRestante = dSubTotal; m_dTotalFatura = dValorTotalProdutos; } // Inserindo os Produtos Principais double dPrecoUnitarioProduto = 0, dSubTotalProduto = 0; for (int nCont = 0; nCont < m_sortLstProdutosFatura.Count; nCont++) { clsProdutoData cls_ProdutoData = (clsProdutoData)m_sortLstProdutosFatura.GetByIndex(nCont); if (m_bRatiar || m_bRatiarDesconto) // Com Rateio { 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; } else { // Sem Rateio dPrecoUnitarioProduto = cls_ProdutoData.PrecoUnitario; dSubTotalProduto = (dPrecoUnitarioProduto * cls_ProdutoData.Quantidade); } } bRetorno = true; return(bRetorno); }