예제 #1
0
파일: addTax.xaml.cs 프로젝트: hiac0493/pos
 private void ClearViews()
 {
     taxNameTextBox.Text       = string.Empty;
     searchTaxTextBox.Text     = string.Empty;
     percentageTaxTextBox.Text = string.Empty;
     impuestoUpdate            = new Impuestos();
 }
예제 #2
0
 public bool Guardar()
 {
     try
     {
         decimal dcmRecargo = 0;
         if (txtRecargo.Text.Trim().Length > 0)
         {
             dcmRecargo = Convert.ToDecimal(txtRecargo.Text.Trim());
         }
         if (ValidarGuardar())
         {
             var oImpuesto = new Impuestos();
             oImpuesto.Porcentaje          = Convert.ToDecimal(txtPorcentaje.Text);
             oImpuesto.RecargoEquivalencia = dcmRecargo;
             SGPADatos.Impuestos.Add(oImpuesto);
             SGPADatos.SaveChanges();
             LlenarGrid("");
             Inicializar();
             strProceso = "N";
             return(true);
         }
         return(false);
     }
     catch (Exception oException)
     {
         return(false);
     }
 }
예제 #3
0
 public IActionResult SaveImpuesto([FromBody] Impuestos impuestos)
 {
     try
     {
         if (ModelState.IsValid)
         {
             if (impuestos.idImpuesto == 0)
             {
                 PosUoW.ImpuestosRepository.Add(impuestos);
             }
             else
             {
                 PosUoW.ImpuestosRepository.Update(impuestos);
             }
             PosUoW.Save();
             return(Ok(impuestos));
         }
         else
         {
             return(BadRequest("Los datos del impuesto son incorrectos"));
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(StatusCodes.Status500InternalServerError, ex));
     }
 }
예제 #4
0
        public async Task <Impuestos> saveTaxes(Impuestos impuestos)
        {
            string    webApiUrl      = WebApiMethods.SaveImpuesto;
            Impuestos impuestoResult = await App.HttpTools
                                       .HttpPostObjectWithResponseDataAsync <Impuestos, Impuestos>(webApiUrl, impuestos, "Hubo un error en el guardado del impuesto").ConfigureAwait(false);;

            return(impuestoResult);
        }
예제 #5
0
파일: addTax.xaml.cs 프로젝트: hiac0493/pos
 private void taxGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
 {
     impuestoUpdate = (sender as DataGrid).SelectedValue as Impuestos;
     if (impuestoUpdate != null)
     {
         taxNameTextBox.Text         = impuestoUpdate.Descripcion;
         percentageTaxTextBox.Text   = impuestoUpdate.Porcentaje.ToString();
         activateTaxChkBox.IsChecked = impuestoUpdate.Estatus == true ? true : false;
     }
 }
예제 #6
0
파일: addTax.xaml.cs 프로젝트: hiac0493/pos
 //**************************************************
 //*             METHODS FORM
 //**************************************************
 private void activateTaxBtn_Click(object sender, RoutedEventArgs e)
 {
     impuestoUpdate = taxGrid.SelectedItem as Impuestos;
     if (impuestoUpdate != null)
     {
         impuestoUpdate.Estatus = true;
         _taxesPresenter.saveTaxes(impuestoUpdate);
         ClearViews();
         getAllTaxes();
     }
 }
예제 #7
0
파일: addTax.xaml.cs 프로젝트: hiac0493/pos
 private void deactivateTaxBtn_Click(object sender, RoutedEventArgs e)
 {
     impuestoUpdate = taxGrid.SelectedItem as Impuestos;
     if (impuestoUpdate != null)
     {
         impuestoUpdate.Estatus = false;
         _taxesPresenter.saveTaxes(impuestoUpdate);
         taxesList.Remove(impuestoUpdate);
         taxesList.ResetBindings();
         ClearViews();
     }
 }
예제 #8
0
    public ItemComprobanteX(object _comprobanteDeOrigen, string IdProducto)
    {
        tsh_ProductosExDataset data = mz.erp.businessrules.tsh_ProductosEx.GetByPk(IdProducto);

        if (data.tsh_Productos.Rows.Count != 1)
        {
            object ex = new System.Exception("Error al buscar producto");
        }
        _precioDeCostoNeto   = _CostoFinal(data);
        _precioDeVentaBruto  = _PrecioVentaBruto(data);
        _precioDeVentaNeto   = _PrecioDeVentaNeto(data);
        _comprobanteDeOrigen = comprobanteDeOrigen;
        _impuestos           = _ImpuestosProducto(data);
    }
예제 #9
0
파일: addTax.xaml.cs 프로젝트: hiac0493/pos
 private void createNewTax()
 {
     if (!string.IsNullOrWhiteSpace(taxNameTextBox.Text) &&
         !string.IsNullOrWhiteSpace(percentageTaxTextBox.Text))
     {
         Impuestos impuestos = new Impuestos
         {
             Descripcion = taxNameTextBox.Text,
             Porcentaje  = int.Parse(percentageTaxTextBox.Text),
             Estatus     = true
         };
         Impuestos addImpuesto = _taxesPresenter.saveTaxes(impuestos).Result;
         ClearViews();
         taxesList.Add(impuestos);
     }
 }
예제 #10
0
 public IActionResult GetImpuestoById(int id)
 {
     try
     {
         Impuestos impuesto = PosUoW.ImpuestosRepository.GetById(a => a.idImpuesto.Equals(id));
         if (impuesto != null)
         {
             return(Ok(impuesto));
         }
         else
         {
             return(NotFound());
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(StatusCodes.Status500InternalServerError, ex));
     }
 }
예제 #11
0
        private void ImpresionItems()
        {
            /*
             *
             *                              decimal iva = 0;
             *                              decimal cantidad = 0;
             *                              string descripcion = String.Empty;
             *                              decimal monto = 0;
             *
             *
             *
             * */
            ItemsComprobantes items = _comprobante.Items;

            foreach (ItemComprobante itemComp in items)
            {
                ItemFiscal item = new ItemFiscal();
                item.TextoFiscal = String.Empty;                //txtBxTextoFiscal.Text;

                item.Cantidad    = itemComp.Cantidad;
                item.Descripcion = itemComp.DescripcionLarga;
                item.IVA         = itemComp.GetPorcentajeImpuesto(Variables.GetValueString("Impuestos.IVA"));
                item.Monto       = itemComp.Precio;

                Impuestos imp = itemComp.ImpuestosDirectos;
                item.ImpuestosInternos = 8;                //imp.GetTotalImpuesto(Variables.GetValueString("Impuestos.II"));

                //cantidad = imp.GetTotalImpuesto(Variables.GetValueString("Impuestos.IB"));

                //if (rdbttnDescuento.Checked) {item.Diferencia = 'D';}
                //if (rdbttnRecargo.Checked) {item.Diferencia = 'R';}

                item.MontoDif       = 0;            //Decimal.Parse(txtMontoDif.Text);
                item.DescripcionDif = String.Empty; //txtBxDescripcionDif.Text;
                fiscal.GrabarItem(item);
            }
        }
예제 #12
0
 protected override void GetFormSourceData()
 {
     _list = Impuestos.GetList();
 }
예제 #13
0
 public Pago()
 {
     documentosRelacionados = new List <DocumentoRelacionado>();
     impuestos = new Impuestos();
 }
예제 #14
0
 public Task <Impuestos> saveTaxes(Impuestos impuestos)
 {
     return(_taxesPresenter.saveTaxes(impuestos));
 }
예제 #15
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,
            });
        }
예제 #16
0
        public static void CrearFactura()
        {
            //Aquí configuramos el rfc con el cliente, como vamos a hacer pruebas utilizaremos el rfc de pruebas
            // Para cambiar a produción simplemente haga cambie de NO a SI. cuando esta configurado en NO estamos en prueba
            pac = new PAC("DEMO700101XXX", "DEMO700101XXX", "NO");
            //Configuración de certificados.
            conf = new Conf(@"C:\multifacturas_sdk\pruebas\CSD01_AAA010101AAA.cer",
                            @"C:\multifacturas_sdk\pruebas\CSD01_AAA010101AAA.key",
                            "12345678a");
            //Configuramos el sdk para el timbrado
            sdkconf = new SDKConfig(pac, conf, @"C:\multifacturas_sdk\");
            sdk     = new SDK(sdkconf);

            //Datos del emisor.
            emisor = new Emisor();

            //Domicilio
            emisor.Nombre = "Soluciones Integrales en Tecnologías de la Información del Maya S.A de C.V";
            emisor.RFC    = "AAA010101AAA";

            //Creamos el domicilio fiscal del emisor

            DomicilioFiscal domiciliofiscal = new DomicilioFiscal();

            domiciliofiscal.Calle        = " 41";
            domiciliofiscal.NoExterior   = "318";
            domiciliofiscal.Colonia      = "Montealban";
            domiciliofiscal.CodigoPostal = "97114";
            domiciliofiscal.Localidad    = "Mérida";
            domiciliofiscal.Municipio    = "Mérida";
            domiciliofiscal.Pais         = "México";
            domiciliofiscal.Estado       = "Yucatán";



            //En caso de que la expedisión sea en otra sucursal.
            ExpedidoEn expedidoen = new ExpedidoEn();

            expedidoen.Calle        = "Andador Potasio";
            expedidoen.NoExterior   = "279";
            expedidoen.NoInterior   = "3A";
            expedidoen.Colonia      = "11 de Julio";
            expedidoen.CodigoPostal = "60954";
            expedidoen.Localidad    = "Lázaro Cárdenas";
            expedidoen.Municipio    = "Lázaro Cárdenas";
            expedidoen.Pais         = "México";
            expedidoen.Estado       = "Michoacán";

            emisor.Domicilio  = domiciliofiscal;
            emisor.ExpedidoEn = expedidoen;

            ///Creamos el receptor
            receptor        = new Receptor();
            receptor.Nombre = "Francisco Javier Guerrero";
            receptor.RFC    = "XAXX010101000"; //aquí publico gneral.

            Domicilio domicilioreceptor = new Domicilio();

            domicilioreceptor.Calle     = "Domicilio Conocido";
            domicilioreceptor.Localidad = "Lazaro Cárdenas";


            receptor.Domicilio = domicilioreceptor;



            //No es necesario llenar todos los campos.

            //Creamos la venta
            List <Concepto> conceptos = new List <Concepto>();

            conceptos.Add(new Concepto("1", "Pieza", "COD1", "Producto Prueba", "120", "120"));
            Impuestos impuestos = new Impuestos();

            impuestos.AgregaTraslado(new Translado("IVA", "19.2", "16"));

            //Creamos un nuevo objeto de tipo factura


            factura = new CFDI();
            //Datos básicos de la factura
            //factura.Emisor = emisor;
            //factura.Receptor = receptor;
            factura.Emisor    = emisor;
            factura.Receptor  = receptor;
            factura.Conceptos = conceptos;
            factura.Impuestos = impuestos;
            //Configuramos la serie y el folio
            factura.Serie             = "AA";
            factura.Folio             = "1";
            factura.FechaDeExpedicion = "2016-12-02 19:00:00";
            //Consultar los cambios a la miscelanea fiscal Agosto 2016.
            factura.MetodoDePago = "01";
            //Los 4 digitos si pagó con tarjeta o cheque...
            factura.NumCtaPAgo = "";
            //Esto se configura según las reglas del negocio;
            factura.FormaDePago = "Pago en una sola exhibición";
            //Peso mexicano... cambiar al tipo de cambio en caso de cobrar en USD o en otra moneda.
            factura.TipoDeCambio = "1.0";
            //Consultar el Anexo 20.
            factura.TipoDeComprobante = "ingreso"; //ingreso, egreso, traslado [Escribir en minúsculas]
            factura.LugarDeExpedicion = "Lázaro Cárdenas, Michoacan";
            factura.RegimenFiscal     = "De las personas fisicas con actividad empresarial";
            factura.SubTotal          = "120";
            factura.Descuento         = "0";
            factura.Total             = "139.2"; //El total con el iva NETO
            var x = AppDomain.CurrentDomain.BaseDirectory;

            sdk.CreaINI(factura, AppDomain.CurrentDomain.BaseDirectory + "Factura01"); //Esta cadena se cambia por la de tu archivo a generar.

            //Ahora creamos el tmbrado con el archivo INI ya generado (generamos el XML)
            //factura, directorio y el archivo .ini generado
            sdk.Timbrar(factura, AppDomain.CurrentDomain.BaseDirectory, "Factura01");
        }
 //
 #region TaxTotal
 private TaxTotalType[] TaxTotalType(TramaDocumento Doc)
 {
     try
     {
         //Impuestos
         List <TaxTotalType> taxTotal = new List <TaxTotalType>();
         foreach (var Impuestos in Doc.DI)
         {
             string[]     DI           = Impuestos.Split('|');
             TaxTotalType taxTotalType = new TaxTotalType()
             {
                 TaxAmount = new TaxAmountType
                 {
                     currencyID = "PEN",
                     Value      = Convert.ToDecimal(DI[1].ToString())
                 },
                 TaxSubtotal = new TaxSubtotalType[]
                 {
                     new TaxSubtotalType
                     {
                         TaxAmount = new TaxAmountType
                         {
                             currencyID = "PEN",
                             Value      = Convert.ToDecimal(DI[2].ToString())
                         },
                         TaxableAmount = new TaxableAmountType
                         {
                             Value = Convert.ToDecimal(DI[6].ToString())
                         },
                         TaxCategory = new TaxCategoryType
                         {
                             ID = new IDType
                             {
                                 Value = "S"
                             },
                             TierRange = new TierRangeType
                             {
                                 Value = "S"
                             },
                             TaxExemptionReasonCode = new TaxExemptionReasonCodeType
                             {
                                 Value = ""
                             },
                             TaxScheme = new TaxSchemeType
                             {
                                 ID = new IDType
                                 {
                                     Value = DI[3].ToString()
                                 },
                                 Name = new NameType1
                                 {
                                     Value = DI[4].ToString()
                                 },
                                 TaxTypeCode = new TaxTypeCodeType
                                 {
                                     Value = DI[5].ToString()
                                 }
                             }
                         },
                         Percent = new PercentType1 {
                             Value = 18
                         }
                     }
                 },
             };
             taxTotal.Add(taxTotalType);
         }
         return(taxTotal.ToArray());
     }
     catch (Exception)
     {
         throw;
     }
 }
예제 #18
0
        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,
            });
        }
예제 #19
0
        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,
            });
        }