private string GetTabelas(bool fiscal, bool cliente)
        {
            var tabela = Complementos.Obtem(fiscal, cliente).Tabela;

            if (fiscal)
            {
                return(String.Format(@"mov_estoque{0} me
                    left join nota_fiscal nf on (me.idNf=nf.idNf)
                    left join produtos_nf pnf on (me.idProdNf=pnf.idProdNf)
                    left join natureza_operacao no on (pnf.idNaturezaOperacao=no.idNaturezaOperacao)",

                                     tabela));
            }
            else if (cliente)
            {
                return(String.Format(@"mov_estoque{0} me
                    left join nota_fiscal nf on (me.idNf=nf.idNf)
                    left join produtos_nf pnf on (me.idProdNf=pnf.idProdNf)
                    left join natureza_operacao no on (pnf.idNaturezaOperacao=no.idNaturezaOperacao)
                    left join produto_pedido_producao ppp on (me.idProdPedProducao=ppp.idProdPedProducao)",

                                     tabela));
            }
            else
            {
                return(@"mov_estoque me
                    left join nota_fiscal nf on (me.idNf=nf.idNf)
                    left join troca_devolucao td on (me.idTrocaDevolucao=td.idTrocaDevolucao)
                    left join produto_pedido_producao ppp on (me.idProdPedProducao=ppp.idProdPedProducao)
                    left join produto_impressao pi on (me.idRetalhoProducao=pi.idRetalhoProducao)");
            }
        }
 public static void DatosFactExportacion(DataSet dstinvoicexml, Complementos c)
 {
     foreach (DataRow reader in dstinvoicexml.Tables[0].Rows)
     {
         var INCOTERM = reader["transporte"];
         if (INCOTERM != null)
         {
             c.transporte = INCOTERM.ToString();
         }
     }
 }
Beispiel #3
0
        public void abrirModuloPrevisao()
        {
            Principal.abrirJanelaCarregamento(session);
            Carregamento.selecionarTodasFontesDados(session);
            TesteFenix.AcoesUsuario.Carregamento.selecionarFonteDados(session, JanelaCarregamento.CHECKBOX_UO_SEAL_TEC);
            TesteFenix.AcoesUsuario.Carregamento.selecionarTodosCampos(session);
            TesteFenix.AcoesUsuario.Carregamento.clicarBotaoOk(session);
            Thread.Sleep(TimeSpan.FromSeconds(17));
            Principal.abrirJanelaComplementos(session);
            Complementos.selecionarPrevisaoProducao(session);
            Complementos.clicarBotaoOk(session);

            Assert.IsTrue(session.FindElementByAccessibilityId("FormPrevisaoCurva") != null);
        }
Beispiel #4
0
        private void btnSalvarSair_Click(object sender, RoutedEventArgs e)
        {
            salvarCCT = true;

            var complemto = new Complementos();

            if (dtDataAto.SelectedDate != null)
            {
                complemto.Data = dtDataAto.SelectedDate.Value;
            }
            else
            {
                MessageBox.Show("Preencha a Data.", "Atenção", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            complemto.Cct = txtSelo.Text;


            switch (cmbTipoCustas.SelectedIndex)
            {
            case 0:
                complemto.TipoCobranca = "JG";
                break;

            case 1:
                complemto.TipoCobranca = "CC";
                break;

            case 2:
                complemto.TipoCobranca = "SC";
                break;

            case 3:
                complemto.TipoCobranca = "NH";
                break;

            default:
                break;
            }



            if (_escritura != null)
            {
                complemto.DataPratica = _escritura.DataAtoRegistro;

                if (txtLivro.Text != "")
                {
                    complemto.Livro = Convert.ToInt32(_escritura.LivroEscritura);
                }

                complemto.FolhaInicio = _escritura.FolhasInicio;

                complemto.FolhaFim = _escritura.FolhasFim;

                complemto.NumeroAto = _escritura.NumeroAto;

                complemto.Selo = _escritura.SeloEscritura;

                complemto.Aleatorio = _escritura.Aleatorio;

                complemto.IdEscritura = _escritura.EscriturasId;

                seloCCT.Livro = _escritura.LivroEscritura;

                seloCCT.FolhaInicial = _escritura.FolhasInicio;

                seloCCT.FolhaFinal = _escritura.FolhasFim;

                seloCCT.NumeroAto = _escritura.NumeroAto;

                seloCCT.IdAto = _escritura.EscriturasId;
            }


            if (_procuracao != null)
            {
                complemto.DataPratica = _procuracao.DataLavratura;

                if (txtLivro.Text != "")
                {
                    complemto.Livro = Convert.ToInt32(_procuracao.Livro);
                }

                complemto.FolhaInicio = _procuracao.FolhaInicio;

                complemto.FolhaFim = _procuracao.FolhaFim;

                complemto.NumeroAto = _procuracao.NumeroAto;

                complemto.Selo = _procuracao.Selo;

                complemto.Aleatorio = _procuracao.Aleatorio;

                complemto.IdProcuracao = _procuracao.ProcuracaoId;

                seloCCT.Livro = _procuracao.Livro;

                seloCCT.FolhaInicial = _procuracao.FolhaInicio;

                seloCCT.FolhaFinal = _procuracao.FolhaFim;

                seloCCT.NumeroAto = _procuracao.NumeroAto;

                seloCCT.IdAto = _procuracao.ProcuracaoId;
            }



            complemto.Emolumentos = Convert.ToDecimal(txtEmolumentos.Text);

            complemto.Fetj = Convert.ToDecimal(txtFetj.Text);

            complemto.Fundperj = Convert.ToDecimal(txtFundperj.Text);

            complemto.Funprj = Convert.ToDecimal(txtFunperj.Text);

            complemto.Funarpen = Convert.ToDecimal(txtFunarpen.Text);

            complemto.Pmcmv = Convert.ToDecimal(txtPmcmv.Text);

            complemto.Iss = Convert.ToDecimal(txtIss.Text);

            complemto.Total = Convert.ToDecimal(txtTotal.Text);

            complemto.NomeEscrevente = _usuario.Nome;

            complemto.CpfEscrevente = _usuario.Cpf;

            complemto.Enviado = "N";


            _IAppServicoComplementos.Add(complemto);



            seloCCT.Sistema = "NOTAS";

            seloCCT.Reservado = "N";

            seloCCT.Status = "UTILIZADO";

            seloCCT.IdUsuarioReservado = _usuario.UsuarioId;

            seloCCT.UsuarioReservado = _usuario.Nome;

            seloCCT.FormReservado = "COMPLEMENTO";

            seloCCT.FormUtilizado = "COMPLEMENTO";

            seloCCT.Atribuicao = 2;

            seloCCT.DataPratica = DateTime.Now.Date;


            seloCCT.Codigo = 2037;

            seloCCT.Conjunto = "N";

            seloCCT.Natureza = "COMPLEMENTO DE EMOLUMENTOS";

            seloCCT.Escrevente = _usuario.Nome;

            seloCCT.Convenio = "N";

            switch (cmbTipoCustas.SelectedIndex)
            {
            case 0:
                seloCCT.TipoCobranca = "JG";
                break;

            case 1:
                seloCCT.TipoCobranca = "CC";
                break;

            case 2:
                seloCCT.TipoCobranca = "SC";
                break;

            case 3:
                seloCCT.TipoCobranca = "NH";
                break;

            default:
                break;
            }

            seloCCT.Emolumentos = Convert.ToDecimal(txtEmolumentos.Text);
            seloCCT.Fetj        = Convert.ToDecimal(txtFetj.Text);
            seloCCT.Fundperj    = Convert.ToDecimal(txtFundperj.Text);
            seloCCT.Funperj     = Convert.ToDecimal(txtFunperj.Text);
            seloCCT.Funarpen    = Convert.ToDecimal(txtFunarpen.Text);
            seloCCT.Pmcmv       = Convert.ToDecimal(txtPmcmv.Text);
            seloCCT.Iss         = Convert.ToDecimal(txtIss.Text);
            seloCCT.Iss         = Convert.ToDecimal(txtIss.Text);
            seloCCT.Total       = Convert.ToDecimal(txtTotal.Text);


            this.Close();
        }
        public GTDocumento NotaCDXml(FacturaElectronicaGT Header,
                                     DataTable Detalle,
                                     ResponseApi Api,
                                     string Motivo)
        {
            DireccionEmisor direccionEmisor = new DireccionEmisor
            {
                Direccion    = Header.DireccionEmisor,
                CodigoPostal = Header.CodigoPostalEmisor,
                Municipio    = Header.MunicipioEmisor,
                Departamento = Header.DepartamentoEmisor,
                Pais         = Header.PaisEmisor,
            };

            DireccionReceptor direccionReceptor = new DireccionReceptor
            {
                Direccion    = Header.DireccionReceptor,
                CodigoPostal = Header.CodigoPostalReceptor,
                Municipio    = Header.MunicipioReceptor,
                Departamento = Header.DepartamentoReceptor,
                Pais         = Header.PaisReceptor,
            };

            Totales totales = new Totales
            {
                TotalImpuestos = new TotalImpuestos
                {
                    TotalImpuesto = new TotalImpuesto {
                        NombreCorto = "IVA", TotalMontoImpuesto = Header.TotalMontoImpuesto.ToString()
                    },
                },
                GranTotal = Header.GranTotal.ToString(),
            };

            List <Item>     item     = new List <Item>();
            List <Impuesto> impuesto = new List <Impuesto>();

            for (int i = 0; i <= Detalle.Rows.Count - 1; i++)
            {
                Impuestos impuestos = new Impuestos
                {
                    Impuesto = new Impuesto
                    {
                        NombreCorto          = "IVA",
                        CodigoUnidadGravable = Convert.ToDouble(Detalle.Rows[i]["Impuesto"]) == 0.00 ? "2" : "1",
                        MontoGravable        = Detalle.Rows[i]["Gravable"].ToString(),
                        MontoImpuesto        = Detalle.Rows[i]["Impuesto"].ToString(),
                    }
                };

                item.Add(new Item
                {
                    BienOServicio  = Detalle.Rows[i]["Tipo"].ToString().Equals("P") ? "B" : "S",
                    Cantidad       = Detalle.Rows[i]["Cantidad"].ToString(),
                    NumeroLinea    = (i + 1).ToString(),
                    UnidadMedida   = Detalle.Rows[i]["Unidad"].ToString(),
                    Descripcion    = Detalle.Rows[i]["Descripcion"].ToString(),
                    PrecioUnitario = Detalle.Rows[i]["Unitario"].ToString(),
                    Precio         = Detalle.Rows[i]["Precio"].ToString(),
                    Descuento      = Detalle.Rows[i]["Descuento"].ToString(),
                    Impuesto       = impuestos,
                    Total          = Detalle.Rows[i]["Total"].ToString(),
                });
            }

            Items items = new Items
            {
                Item = item,
            };

            ReferenciasNota referencia = new ReferenciasNota
            {
                Cno = "http://www.sat.gob.gt/face2/ComplementoReferenciaNota/0.1.0",
                FechaEmisionDocumentoOrigen = Api.fecha.Substring(0, 10),
                MotivoAjuste = Motivo,
                NumeroAutorizacionDocumentoOrigen = Api.uuid,
                NumeroDocumentoOrigen             = Api.numero,
                SerieDocumentoOrigen = Api.serie,
                Version        = "0.0",
                SchemaLocation = Header.SchemaLocation
            };

            Complemento complemento = new Complemento
            {
                IDComplemento     = "Notas",
                NombreComplemento = "Notas",
                URIComplemento    = "http://www.sat.gob.gt/fel/notas.xsd",
                ReferenciasNota   = referencia
            };

            Complementos complementos = new Complementos
            {
                Complemento = complemento
            };

            DatosEmision datosEmision = new DatosEmision
            {
                ID             = "DatosEmision",
                DatosGenerales = new DatosGenerales
                {
                    CodigoMoneda     = Header.CodigoMoneda,
                    FechaHoraEmision = Header.FechaHoraEmision,
                    Tipo             = Header.Tipo,
                },
                Emisor = new Emisor
                {
                    AfiliacionIVA         = Header.AfiliacionIVA,
                    CodigoEstablecimiento = Header.CodigoEstablecimiento,
                    CorreoEmisor          = Header.CorreoEmisor,
                    NITEmisor             = Header.NITEmisor,
                    NombreComercial       = Header.NombreComercial,
                    NombreEmisor          = Header.NombreEmisor,
                    DireccionEmisor       = direccionEmisor,
                },
                Receptor = new Receptor
                {
                    CorreoReceptor    = Header.CorreoReceptor,
                    IDReceptor        = Header.IDReceptor,
                    NombreReceptor    = Header.NombreReceptor,
                    DireccionReceptor = direccionReceptor,
                },
                Items        = items,
                Totales      = totales,
                Complementos = complementos,
            };

            DTE dte = new DTE
            {
                ID           = "DatosCertificados",
                DatosEmision = datosEmision,
            };

            SAT sat = new SAT
            {
                ClaseDocumento = "dte",
                DTE            = dte,
            };

            return(new GTDocumento
            {
                SAT = sat,
            });
        }
Beispiel #6
0
 public ActionResult ConsultarComplementos(Complementos comp)
 {
     //return PartialView("Complementos");
     return(PartialView("Complementos", metodos.ListaComplementos(comp.FechaInicio, comp.FechaFin)));
 }
        internal string Sql(uint idCliente, uint idLoja, string codInternoProd, string descrProd, string ncm, int?numeroNfe, string codOtimizacao, string dataIni, string dataFim,
                            int tipoMov, int situacaoProd, uint idCfop, string idsGrupoProd, string idsSubgrupoProd, uint idCorVidro, uint idCorFerragem, uint idCorAluminio,
                            bool fiscal, bool cliente, bool ignorarUsoConsumo, List <Glass.Data.Model.TipoMercadoria> tipoMercadoria,
                            bool selecionar, out bool temFiltro, out string filtroAdicional)
        {
            temFiltro = false;
            var criterio = GetCriterio(idCliente, idLoja, codInternoProd, descrProd, ncm, numeroNfe, codOtimizacao, dataIni, dataFim, tipoMov, situacaoProd, idCfop,
                                       idsGrupoProd, idsSubgrupoProd, idCorVidro, idCorFerragem, idCorAluminio, fiscal, cliente);

            var compl = Complementos.Obtem(fiscal, cliente);
            var sql   = new StringBuilder("select ");

            sql.AppendFormat(selecionar ? @"me.idMovEstoque{0} as idMovEstoque, me.idProd, me.dataMov as data, 
                {1} as numeroDocumento, me.tipoMov as tipo, me.qtdeMov as qtde, me.valorMov as valor, 
                p.codInterno as codInternoProd, p.descricao as descrProd, me.saldoQtdeMov as qtdeSaldo, 
                me.saldoValorMov as valorSaldo, false as estoqueInicial, '{2}' as criterio,
                concat(g.descricao, if(s.idSubgrupoProd is not null, concat(' - ', s.descricao), '')) as descrTipoProd,
                coalesce({3}s.tipoCalculo, g.tipoCalculo) as tipoCalc, u.codigo as unidadeProd, COALESCE(ncm.ncm, p.ncm) as ncm" : "count(*)",
                             compl.Campo,
                             GetNumeroDocumento(fiscal, cliente), criterio,
                             fiscal ? "s.tipoCalculoNf, g.tipoCalculoNf, " : "");

            sql.AppendFormat(@"
                from {0}
                    left join produto p on (me.idProd=p.idProd)
                    left join grupo_prod g on (p.idGrupoProd=g.idGrupoProd)
                    left join subgrupo_prod s on (p.idSubgrupoProd=s.idSubgrupoProd)
                    left join unidade_medida u on (p.idUnidadeMedida=u.idUnidadeMedida)
                    Left Join produto_loja pl on (pl.idProd=me.idProd and pl.idLoja=me.idLoja)
                    LEFT JOIN
                    (
                        SELECT *
                        FROM produto_ncm
                    ) as ncm ON (me.IdLoja = ncm.IdLoja AND p.IdProd = ncm.IdProd)
                where exists (select * from produto where idProd=me.idProd) {1}",
                             GetTabelas(fiscal, cliente),
                             FILTRO_ADICIONAL);

            var filtroSql = ObterFiltroSql(
                (int)idCliente,
                (int)idLoja,
                codInternoProd,
                descrProd,
                ncm,
                numeroNfe,
                codOtimizacao,
                dataIni,
                dataFim,
                tipoMov,
                situacaoProd,
                (int)idCfop,
                idsGrupoProd,
                idsSubgrupoProd,
                (int)idCorVidro,
                (int)idCorFerragem,
                (int)idCorAluminio,
                fiscal,
                cliente,
                ignorarUsoConsumo,
                tipoMercadoria,
                out filtroAdicional,
                out temFiltro);

            sql.AppendFormat(filtroSql);

            return(sql.ToString());
        }
        internal string SqlComparativo(uint idCliente, uint idLoja, string codInternoProd, string descrProd, int?numeroNfe, string dataIni, string dataFim,
                                       int tipoMov, int situacaoProd, uint idCfop, string idsGrupoProd, string idsSubgrupoProd, uint idCorVidro, uint idCorFerragem, uint idCorAluminio,
                                       bool fiscal, bool cliente, bool selecionar, out bool temFiltro, out string filtroAdicional)
        {
            temFiltro = false;
            string criterio = GetCriterio(idCliente, idLoja, codInternoProd, descrProd, null, numeroNfe, null, dataIni, dataFim, tipoMov, situacaoProd, idCfop,
                                          idsGrupoProd, idsSubgrupoProd, idCorVidro, idCorFerragem, idCorAluminio, fiscal, cliente);

            var compl = Complementos.Obtem(fiscal, cliente);

            StringBuilder sql = new StringBuilder("Select ");

            sql.AppendFormat(selecionar ? @"me.idMovEstoque{0} as idMovEstoque, me.idProd, me.saldoQtdeMov as qtdeSaldo" :
                             "count(*)", compl.Campo);

            sql.AppendFormat(@"
                from mov_estoque{0} me
                    left join nota_fiscal nf on (me.idNf=nf.idNf)
                    left join produtos_nf pnf on (me.idProdNf=pnf.idProdNf)
                    left join natureza_operacao no on (pnf.idNaturezaOperacao=no.idNaturezaOperacao)
                    left join produto p on (me.idProd=p.idProd)
                    left join grupo_prod g on (p.idGrupoProd=g.idGrupoProd)
                    Left Join produto_loja pl on (pl.idProd=me.idProd and pl.idLoja=me.idLoja)
                where g.tipoGrupo<>{1} {2}",

                             compl.Tabela,
                             (int)TipoGrupoProd.UsoConsumo,
                             FILTRO_ADICIONAL);

            StringBuilder fa = new StringBuilder();

            if (cliente && idCliente > 0)
            {
                fa.AppendFormat(" and me.idCliente={0}", idCliente);
            }

            if (idLoja > 0)
            {
                fa.AppendFormat(" and me.idLoja={0}", idLoja);
            }

            if (!String.IsNullOrEmpty(codInternoProd) || !String.IsNullOrEmpty(descrProd))
            {
                fa.AppendFormat(" and me.idProd in ({0})", ProdutoDAO.Instance.ObtemIds(codInternoProd, descrProd));
            }

            if (numeroNfe > 0)
            {
                fa.AppendFormat(" AND me.IdNf IN ({0})", NotaFiscalDAO.Instance.ObterIdsNf(null, numeroNfe.Value));
            }

            if (!String.IsNullOrEmpty(dataIni))
            {
                fa.Append(" and me.dataMov>=?dataIni");
            }

            if (!String.IsNullOrEmpty(dataFim))
            {
                fa.Append(" and me.dataMov<=?dataFim");
            }

            if (tipoMov > 0)
            {
                fa.AppendFormat(" and me.tipoMov={0}", tipoMov);
            }

            if (situacaoProd > 0)
            {
                sql.AppendFormat(" and p.situacao={0}", situacaoProd);
                temFiltro = true;
            }

            if ((fiscal || cliente) && idCfop > 0)
            {
                sql.AppendFormat(" and no.idCfop={0}", idCfop);
                temFiltro = true;
            }

            if (!String.IsNullOrEmpty(idsGrupoProd))
            {
                sql.AppendFormat(" and p.idGrupoProd IN ({0})", idsGrupoProd);
                temFiltro = true;
            }

            if (!string.IsNullOrEmpty(idsSubgrupoProd))
            {
                sql.AppendFormat(" and p.idSubgrupoProd IN({0})", idsSubgrupoProd);
                temFiltro = true;
            }

            if (idCorVidro > 0)
            {
                sql.AppendFormat(" and p.idCorVidro={0}", idCorVidro);
                temFiltro = true;
            }

            if (idCorFerragem > 0)
            {
                sql.AppendFormat(" and p.idCorFerragem={0}", idCorFerragem);
                temFiltro = true;
            }

            if (idCorAluminio > 0)
            {
                sql.AppendFormat(" and p.idCorAluminio={0}", idCorAluminio);
                temFiltro = true;
            }

            filtroAdicional = fa.ToString();
            return(sql.ToString());
        }
        internal string SqlEstoqueInicial(uint idCliente, uint idLoja, string codInternoProd, string descrProd, string ncm, int?numeroNfe, string codOtimizacao, string dataIni,
                                          string dataFim, int tipoMov, int situacaoProd, uint idCfop, string idsGrupoProd, string idsSubgrupoProd, uint idCorVidro, uint idCorFerragem,
                                          uint idCorAluminio, bool fiscal, bool cliente, bool ignorarUsoConsumo, List <TipoMercadoria> tipoMercadoria,
                                          bool selecionar, out bool temFiltro, out string filtroAdicional)
        {
            string criterio = GetCriterio(idCliente, idLoja, codInternoProd, descrProd, ncm, numeroNfe, codOtimizacao, dataIni, dataFim, tipoMov, situacaoProd, idCfop,
                                          idsGrupoProd, idsSubgrupoProd, idCorVidro, idCorFerragem, idCorAluminio, fiscal, cliente);

            var compl = Complementos.Obtem(fiscal, cliente);

            StringBuilder sql = new StringBuilder("select ");

            sql.AppendFormat(selecionar ? @"idMovEstoque, temp.idProd, date(?dataIni) as data,
                'Estoque inicial' as numeroDocumento, 1 as tipo, sum(qtdeSaldo) as qtde, sum(valor) as valor,
                p.codInterno as codInternoProd, p.descricao as descrProd, qtdeSaldo as qtdeSaldo,
                sum(valorSaldo) as valorSaldo, true as estoqueInicial, '{0}' as criterio, 
                concat(g.descricao, if(s.idSubgrupoProd is not null, concat(' - ', s.descricao), '')) as descrTipoProd,
                coalesce({1}s.tipoCalculo, g.tipoCalculo) as tipoCalc, u.codigo as unidadeProd, COALESCE(ncm.ncm, p.ncm) as ncm" : "sum(num)",
                             criterio,
                             fiscal ? "s.tipoCalculoNf, g.tipoCalculoNf, " : string.Empty);

            var idsProd = this.ExecuteMultipleScalar <int>(
                this.SqlEstoqueInicialIdsProd(
                    (int)idCliente,
                    (int)idLoja,
                    codInternoProd,
                    descrProd,
                    ncm,
                    numeroNfe,
                    codOtimizacao,
                    dataIni,
                    dataFim,
                    tipoMov,
                    situacaoProd,
                    (int)idCfop,
                    idsGrupoProd,
                    idsSubgrupoProd,
                    (int)idCorVidro,
                    (int)idCorFerragem,
                    (int)idCorAluminio,
                    fiscal,
                    cliente,
                    ignorarUsoConsumo,
                    tipoMercadoria,
                    out filtroAdicional,
                    out temFiltro),
                this.GetParams(dataIni, dataFim, ncm));

            if (!idsProd.Any(f => f > 0))
            {
                idsProd = new List <int> {
                    0
                };
            }

            sql.Append(" from (select ");
            sql.AppendFormat(selecionar ? @"me.idMovEstoque{0} as idMovEstoque, me.idProd, 
                me.qtdeMov as qtde, me.saldoValorMov as valor, me.saldoQtdeMov as qtdeSaldo,
                me.saldoValorMov as valorSaldo" : "count(*) as num", compl.Campo);

            sql.AppendFormat(@"
                from mov_estoque{0} me
                    left join (
                        select * from (
                            select idMovEstoque{1} as idMovEstoque, idProd, idLoja
                            from mov_estoque{0}
                            where idProd in ({2}) and idLoja={3} and dataMov < ?dataIni {4}
                            order by dataMov desc, idMovEstoque desc
                        ) as temp
                        group by idProd, idLoja
                    ) id on (me.idProd=id.idProd and me.idLoja=id.idLoja)
                where me.idMovEstoque{1}=id.idMovEstoque and me.idProd in ({2}) and me.idLoja={3}",

                             compl.Tabela,
                             compl.Campo,
                             string.Join(",", idsProd), idLoja, (cliente && idCliente > 0 ? " AND idCliente=" + idCliente : ""));

            sql.Append(" union all select ");
            sql.Append(selecionar ? @"null as idMovEstoque, idProd, cast(0 as decimal(12,2)) as qtde, 
                cast(0 as decimal(12,2)) as valor, cast(0 as decimal(12,2)) as qtdeSaldo,
                cast(0 as decimal(12,2)) as valorSaldo" : "count(*) as num");

            sql.AppendFormat(@"
                from produto
                where idProd in ({0})", string.Join(",", idsProd));

            sql.AppendFormat(@"
                ) as temp
                    left join produto p on (temp.idProd=p.idProd)
                    left join grupo_prod g on (p.idGrupoProd=g.idGrupoProd)
                    left join subgrupo_prod s on (p.idSubgrupoProd=s.idSubgrupoProd)
                    left join unidade_medida u on (p.idUnidadeMedida=u.idUnidadeMedida)
                    LEFT JOIN
                    (
                        SELECT *
                        FROM produto_ncm
                    ) as ncm ON ({1} = ncm.IdLoja AND p.IdProd = ncm.IdProd)
                where {0}
                group by idProd", "g.tipoGrupo<>" + (int)TipoGrupoProd.UsoConsumo, idLoja);

            return(sql.ToString());
        }
Beispiel #10
0
        public GTDocumento FExportacionXml(FacturaElectronicaGT Header, DataTable Detalle)
        {
            DireccionEmisor direccionEmisor = new DireccionEmisor
            {
                Direccion    = Header.DireccionEmisor,
                CodigoPostal = Header.CodigoPostalEmisor,
                Municipio    = Header.MunicipioEmisor,
                Departamento = Header.DepartamentoEmisor,
                Pais         = Header.PaisEmisor,
            };

            DireccionReceptor direccionReceptor = new DireccionReceptor
            {
                Direccion    = Header.DireccionReceptor,
                CodigoPostal = Header.CodigoPostalReceptor,
                Municipio    = Header.MunicipioReceptor,
                Departamento = Header.DepartamentoReceptor,
                Pais         = Header.PaisReceptor,
            };

            Frases frases = new Frases();

            //SI ES FACTURA DE EXPORTACION SE AGREGAR 3 LINEAS DE FRASES.
            if (Header.Exp.Equals("SI"))
            {
                frases.Frase = new List <Frase> {
                    new Frase {
                        CodigoEscenario = Header.CodigoEscenario, TipoFrase = Header.TipoFrase
                    },
                    new Frase {
                        CodigoEscenario = Header.CodigoEscenario, TipoFrase = "4"
                    }
                };
            }
            else
            {
                frases.Frase = new List <Frase> {
                    new Frase {
                        CodigoEscenario = Header.CodigoEscenario, TipoFrase = Header.TipoFrase
                    }
                };
            }

            TotalImpuestos TotalImpuestos = new TotalImpuestos
            {
                TotalImpuesto = new TotalImpuesto {
                    NombreCorto = "IVA", TotalMontoImpuesto = Header.TotalMontoImpuesto.ToString()
                },
            };

            Totales totales = new Totales
            {
                TotalImpuestos = new TotalImpuestos
                {
                    TotalImpuesto = new TotalImpuesto {
                        NombreCorto = "IVA", TotalMontoImpuesto = Header.TotalMontoImpuesto.ToString()
                    },
                },
                GranTotal = Header.GranTotal.ToString(),
            };

            List <Item>     item     = new List <Item>();
            List <Impuesto> impuesto = new List <Impuesto>();

            for (int i = 0; i <= Detalle.Rows.Count - 1; i++)
            {
                Impuestos impuestos = new Impuestos
                {
                    Impuesto = new Impuesto
                    {
                        NombreCorto          = "IVA",
                        CodigoUnidadGravable = Convert.ToDecimal(Detalle.Rows[i]["Impuesto"].ToString()) > 0 ?  "1" : "2",
                        MontoGravable        = Detalle.Rows[i]["Gravable"].ToString(),
                        MontoImpuesto        = Detalle.Rows[i]["Impuesto"].ToString(),
                    }
                };

                item.Add(new Item
                {
                    BienOServicio  = Detalle.Rows[i]["Tipo"].ToString().Equals("P") ? "B" : "S",
                    Cantidad       = Detalle.Rows[i]["Cantidad"].ToString(),
                    NumeroLinea    = (i + 1).ToString(),
                    UnidadMedida   = Detalle.Rows[i]["Unidad"].ToString(),
                    Descripcion    = Detalle.Rows[i]["Descripcion"].ToString(),
                    PrecioUnitario = Detalle.Rows[i]["Unitario"].ToString(),
                    Precio         = Detalle.Rows[i]["Precio"].ToString(),
                    Descuento      = Detalle.Rows[i]["Descuento"].ToString(),
                    Impuesto       = impuestos,
                    Total          = Detalle.Rows[i]["Total"].ToString(),
                });
            }

            Items items = new Items
            {
                Item = item,
            };

            //Cuando la factura es de credito se agrega el complemento.
            XmlFormatoFactura.Abono abono = new XmlFormatoFactura.Abono
            {
                NumeroAbono      = "1",
                FechaVencimiento = Header.Vencimiento,
                MontoAbono       = Header.GranTotal.ToString(),
            };

            XmlFormatoFactura.AbonosFacturaCambiaria abonoFC = new XmlFormatoFactura.AbonosFacturaCambiaria
            {
                Cfc            = "http://www.sat.gob.gt/dte/fel/CompCambiaria/0.1.0",
                Version        = "1",
                SchemaLocation = Header.SchemaLocation,
                Abono          = abono,
            };

            //Complemento complemento = new Complemento
            //{
            //    IDComplemento = "Cambiaria",
            //    NombreComplemento = "Cambiaria",
            //    URIComplemento = "http://www.sat.gob.gt/fel/cambiaria.xsd",
            //    AbonosFacturaCambiaria = abonoFC,
            //};

            Exportacion exportacion = new Exportacion
            {
                Cex            = "http://www.sat.gob.gt/face2/ComplementoExportaciones/0.1.0",
                Version        = "1",
                SchemaLocation = Header.SchemaLocation,
                NombreConsignatarioODestinatario    = Header.NombreConsignatarioODestinatario,
                DireccionConsignatarioODestinatario = Header.DireccionConsignatarioODestinatario,
                CodigoConsignatarioODestinatario    = Header.CodigoConsignatarioODestinatario,
                NombreComprador    = Header.NombreComprador,
                DireccionComprador = Header.DireccionComprador,
                CodigoComprador    = Header.CodigoComprador,
                OtraReferencia     = Header.OtraReferencia,
                INCOTERM           = Header.INCOTERM,
                NombreExportador   = Header.NombreExportador,
                CodigoExportador   = Header.CodigoExportador,
            };

            //Complemento complemento = new Complemento
            //{
            //    IDComplemento = "Exportacion",
            //    NombreComplemento = "Exportacion",
            //    URIComplemento = "http://www.sat.gob.gt/fel/exportacion.xsd",
            //    Exportacion = exportacion,
            //};

            List <Complemento> complementoList = new List <Complemento> {
                new Complemento {
                    IDComplemento     = "Exportacion",
                    NombreComplemento = "Exportacion",
                    URIComplemento    = "http://www.sat.gob.gt/fel/exportacion.xsd",
                    Exportacion       = exportacion,
                },
                new Complemento {
                    IDComplemento          = "Cambiaria",
                    NombreComplemento      = "Cambiaria",
                    URIComplemento         = "http://www.sat.gob.gt/fel/cambiaria.xsd",
                    AbonosFacturaCambiaria = abonoFC,
                },
            };

            Complementos complementos = new Complementos
            {
                //Complemento = complemento
                Complemento = complementoList
            };

            DatosEmision datosEmision = new DatosEmision
            {
                ID             = "DatosEmision",
                DatosGenerales = new DatosGenerales
                {
                    CodigoMoneda     = Header.CodigoMoneda,
                    FechaHoraEmision = Header.FechaHoraEmision,
                    Tipo             = Header.Tipo,
                    Exp = Header.Exp,
                },
                Emisor = new Emisor
                {
                    AfiliacionIVA         = Header.AfiliacionIVA,
                    CodigoEstablecimiento = Header.CodigoEstablecimiento,
                    CorreoEmisor          = Header.CorreoEmisor,
                    NITEmisor             = Header.NITEmisor,
                    NombreComercial       = Header.NombreComercial,
                    NombreEmisor          = Header.NombreEmisor,
                    DireccionEmisor       = direccionEmisor,
                },

                Receptor = new Receptor
                {
                    DireccionReceptor = direccionReceptor,
                    CorreoReceptor    = Header.CorreoReceptor,
                    IDReceptor        = Header.IDReceptor,
                    NombreReceptor    = Header.NombreReceptor,
                },

                Frases       = frases,
                Items        = items,
                Totales      = totales,
                Complementos = complementos,
            };

            DTE dte = new DTE
            {
                ID           = "DatosCertificados",
                DatosEmision = datosEmision,
            };

            SAT sat = new SAT
            {
                ClaseDocumento = "dte",
                DTE            = dte,
            };

            return(new GTDocumento
            {
                SAT = sat,
            });
        }
        public GTDocumento FacturaXml(FacturaElectronicaGT Header, DataTable Detalle)
        {
            DireccionEmisor direccionEmisor = new DireccionEmisor
            {
                Direccion    = Header.DireccionEmisor,
                CodigoPostal = Header.CodigoPostalEmisor,
                Municipio    = Header.MunicipioEmisor,
                Departamento = Header.DepartamentoEmisor,
                Pais         = Header.PaisEmisor,
            };

            DireccionReceptor direccionReceptor = new DireccionReceptor
            {
                Direccion    = Header.DireccionReceptor,
                CodigoPostal = Header.CodigoPostalReceptor,
                Municipio    = Header.MunicipioReceptor,
                Departamento = Header.DepartamentoReceptor,
                Pais         = Header.PaisReceptor,
            };

            Frases frases = new Frases();

            frases.Frase = new List <Frase> {
                new Frase {
                    CodigoEscenario = Header.CodigoEscenario, TipoFrase = Header.TipoFrase
                }
            };

            TotalImpuestos TotalImpuestos = new TotalImpuestos
            {
                TotalImpuesto = new TotalImpuesto {
                    NombreCorto = "IVA", TotalMontoImpuesto = Header.TotalMontoImpuesto.ToString()
                },
            };

            Totales totales = new Totales
            {
                TotalImpuestos = new TotalImpuestos
                {
                    TotalImpuesto = new TotalImpuesto {
                        NombreCorto = "IVA", TotalMontoImpuesto = Header.TotalMontoImpuesto.ToString()
                    },
                },
                GranTotal = Header.GranTotal.ToString(),
            };

            List <Item>     item     = new List <Item>();
            List <Impuesto> impuesto = new List <Impuesto>();

            for (int i = 0; i <= Detalle.Rows.Count - 1; i++)
            {
                Impuestos impuestos = new Impuestos
                {
                    Impuesto = new Impuesto {
                        NombreCorto          = "IVA",
                        CodigoUnidadGravable = "1",
                        MontoGravable        = Detalle.Rows[i]["Gravable"].ToString(),
                        MontoImpuesto        = Detalle.Rows[i]["Impuesto"].ToString(),
                    }
                };

                item.Add(new Item
                {
                    BienOServicio  = Detalle.Rows[i]["Tipo"].ToString().Equals("P") ? "B" : "S",
                    Cantidad       = Detalle.Rows[i]["Cantidad"].ToString(),
                    NumeroLinea    = (i + 1).ToString(),
                    UnidadMedida   = Detalle.Rows[i]["Unidad"].ToString(),
                    Descripcion    = Detalle.Rows[i]["Descripcion"].ToString(),
                    PrecioUnitario = Detalle.Rows[i]["Unitario"].ToString(),
                    Precio         = Detalle.Rows[i]["Precio"].ToString(),
                    Descuento      = Detalle.Rows[i]["Descuento"].ToString(),
                    Impuesto       = impuestos,
                    Total          = Detalle.Rows[i]["Total"].ToString(),
                });
            }

            Items items = new Items
            {
                Item = item,
            };

            //Cuando la factura es de credito se agrega el complemento.
            Abono abono = new Abono
            {
                NumeroAbono      = "1",
                FechaVencimiento = Header.Vencimiento,
                MontoAbono       = Header.GranTotal.ToString(),
            };

            AbonosFacturaCambiaria abonoFC = new AbonosFacturaCambiaria
            {
                Cfc            = "http://www.sat.gob.gt/dte/fel/CompCambiaria/0.1.0",
                Version        = "1",
                SchemaLocation = Header.SchemaLocation,
                Abono          = abono,
            };

            Complemento complemento = new Complemento
            {
                IDComplemento          = "Cambiaria",
                NombreComplemento      = "Cambiaria",
                URIComplemento         = "http://www.sat.gob.gt/fel/cambiaria.xsd",
                AbonosFacturaCambiaria = abonoFC,
            };

            Complementos complementos = new Complementos
            {
                Complemento = complemento
            };

            DatosEmision datosEmision = new DatosEmision
            {
                ID             = "DatosEmision",
                DatosGenerales = new DatosGenerales
                {
                    CodigoMoneda     = Header.CodigoMoneda,
                    FechaHoraEmision = Header.FechaHoraEmision,
                    Tipo             = Header.Tipo,
                },
                Emisor = new Emisor
                {
                    AfiliacionIVA         = Header.AfiliacionIVA,
                    CodigoEstablecimiento = Header.CodigoEstablecimiento,
                    CorreoEmisor          = Header.CorreoEmisor,
                    NITEmisor             = Header.NITEmisor,
                    NombreComercial       = Header.NombreComercial,
                    NombreEmisor          = Header.NombreEmisor,
                    DireccionEmisor       = direccionEmisor,
                },
                Receptor = new Receptor
                {
                    CorreoReceptor    = Header.CorreoReceptor,
                    IDReceptor        = Header.IDReceptor,
                    NombreReceptor    = Header.NombreReceptor,
                    DireccionReceptor = direccionReceptor,
                },
                Frases       = frases,
                Items        = items,
                Totales      = totales,
                Complementos = complementos
            };

            DTE dte = new DTE
            {
                ID           = "DatosCertificados",
                DatosEmision = datosEmision,
            };

            SAT sat = new SAT
            {
                ClaseDocumento = "dte",
                DTE            = dte,
                Adenda         = new Adenda
                {
                    Codigo_cliente = Header.Codigo_cliente,
                    Observaciones  = Header.Observaciones,
                    Lugar          = Header.Lugar,
                    Vendedor       = Header.Vendedor,
                    Forma_pago     = Header.Forma_pago,
                    Vencimiento    = Header.Vencimiento,
                    TCambio        = Header.TCambio,
                }
            };

            return(new GTDocumento
            {
                SAT = sat,
            });
        }