Beispiel #1
0
 public void UpdateImpuesto(Impuesto entity)
 {
     ImpuestoDao.Update(entity);
 }
        public static void DatosItems(DataSet dstdetailinvoicexml, List <Item> items)
        {
            foreach (DataRow reader in dstdetailinvoicexml.Tables[0].Rows)
            {
                Item item = new Item();
                item.impuestos = new List <Impuesto>();
                Impuesto impuesto = new Impuesto();
                //impuesto
                var impuestonombrecorto = reader["impuestonombrecorto"];
                if (impuestonombrecorto != null)
                {
                    impuesto.NombreCorto = impuestonombrecorto.ToString();
                }
                var codigounidadgravable = reader["codigounidadgravable"];
                if (codigounidadgravable != null)
                {
                    impuesto.CodigoUnidadGravable = codigounidadgravable.ToString();
                }

                var montoimpuesto = reader["montoimpuesto"];
                if (montoimpuesto != null)
                {
                    impuesto.MontoImpuesto = montoimpuesto.ToString();
                }
                var montogravable = reader["montogravable"];
                if (montogravable != null)
                {
                    impuesto.MontoGravable = montogravable.ToString();
                }
                //item en general
                var bienoservicio = reader["bienoservicio"];
                if (bienoservicio != null)
                {
                    item.BienOServicio = bienoservicio.ToString();
                }
                var descripcion = reader["descripcion"];
                if (descripcion != null)
                {
                    item.Descripcion = descripcion.ToString();
                }
                var numerolinea = reader["numerolinea"];
                if (numerolinea != null)
                {
                    item.NumeroLinea = numerolinea.ToString();
                }
                var cantidad = reader["cantidad"];
                if (cantidad != null)
                {
                    item.Cantidad = cantidad.ToString();
                }
                var unidadMedida = reader["unidadMedida"];
                if (unidadMedida != null)
                {
                    item.UnidadMedida = unidadMedida.ToString();
                }
                var precio = reader["precio"];
                if (precio != null)
                {
                    item.Precio = precio.ToString();
                }
                var preciounitario = reader["preciounitario"];
                if (preciounitario != null)
                {
                    item.PrecioUnitario = preciounitario.ToString();
                }

                var total = reader["total"];
                if (total != null)
                {
                    item.Total = total.ToString();
                }

                var descuento = reader["descuento"];
                if (descuento != null)
                {
                    if (Double.Parse(descuento.ToString()) > 0d)
                    {
                        item.Descuento = descuento.ToString();
                    }
                }
                items.Add(item);
                item.impuestos.Add(impuesto);
            }
        }
Beispiel #3
0
 public int SaveImpuesto(Impuesto entity)
 {
     return(ImpuestoDao.Save(entity));
 }
Beispiel #4
0
 public void Update(Impuesto impuesto)
 {
     crudImpuesto.Update(impuesto);
 }
Beispiel #5
0
 public void Delete(Impuesto impuesto)
 {
     crudImpuesto.Delete(impuesto);
 }
Beispiel #6
0
 public void Create(Impuesto impuesto)
 {
     crudImpuesto.Create(impuesto);
 }
Beispiel #7
0
 public Impuesto RetrieveById(Impuesto impuesto)
 {
     return(crudImpuesto.Retrieve <Impuesto>(impuesto));
 }
        public static void InicializaDatabaseDefaultsValues()
        {
            try
            {
                using (var db = new DymContext())
                {
                    var estacion = db.Estacion.FirstOrDefault(x => x.EstacionId == "SYS");
                    if (estacion == null)
                    {
                        estacion                   = new Estacion();
                        estacion.EstacionId        = "SYS";
                        estacion.Nombre            = "DEFAUTL";
                        estacion.CanjearPuntosAuto = false;
                        db.Add(estacion);
                    }

                    var sustancia = db.Sustancia.FirstOrDefault(x => x.SustanciaId == "SYS");
                    if (sustancia == null)
                    {
                        sustancia             = new Sustancia();
                        sustancia.SustanciaId = "SYS";
                        sustancia.Nombre      = "DEFAUTL";
                        db.Add(sustancia);
                    }

                    var categoria = db.Categoria.FirstOrDefault(x => x.CategoriaId == "SYS");
                    if (categoria == null)
                    {
                        categoria             = new Categoria();
                        categoria.CategoriaId = "SYS";
                        categoria.Nombre      = "DEFAUTL";
                        db.Add(categoria);
                    }


                    var presentacion = db.Presentacion.FirstOrDefault(x => x.PresentacionId == "SYS");
                    if (presentacion == null)
                    {
                        presentacion = new Presentacion();
                        presentacion.PresentacionId = "SYS";
                        presentacion.Nombre         = "DEFAUTL";
                        db.Add(presentacion);
                    }
                    var laboratorio = db.Laboratorio.FirstOrDefault(x => x.LaboratorioId == "SYS");
                    if (laboratorio == null)
                    {
                        laboratorio = new Laboratorio();
                        laboratorio.LaboratorioId = "SYS";
                        laboratorio.Nombre        = "DEFAUTL";
                        db.Add(laboratorio);
                    }
                    var impuesto = db.Impuesto.FirstOrDefault(x => x.ImpuestoId == "SYS");
                    if (impuesto == null)
                    {
                        impuesto            = new Impuesto();
                        impuesto.ImpuestoId = "SYS";
                        impuesto.Tasa       = 0;
                        impuesto.CImpuesto  = "002";
                        db.Add(impuesto);
                    }

                    var unidadMedida = db.UnidadMedida.FirstOrDefault(x => x.UnidadMedidaId == "SYS");
                    if (unidadMedida == null)
                    {
                        unidadMedida = new UnidadMedida();
                        unidadMedida.UnidadMedidaId = "SYS";
                        unidadMedida.Nombre         = "DEFAUTL";
                        unidadMedida.UnidadSat      = "H87";
                        db.Add(unidadMedida);
                    }

                    var edodocP = db.EstadoDoc.FirstOrDefault(x => x.EstadoDocId == "PEN");
                    if (edodocP == null)
                    {
                        edodocP             = new EstadoDoc();
                        edodocP.EstadoDocId = "PEN";
                        edodocP.Descripcion = "PENDIENTE";
                        db.Add(edodocP);
                    }
                    var edodocCa = db.EstadoDoc.FirstOrDefault(x => x.EstadoDocId == "CAN");
                    if (edodocCa == null)
                    {
                        edodocCa             = new EstadoDoc();
                        edodocCa.EstadoDocId = "CAN";
                        edodocCa.Descripcion = "CANCELADO";
                        db.Add(edodocCa);
                    }
                    var edodocCo = db.EstadoDoc.FirstOrDefault(x => x.EstadoDocId == "CON");
                    if (edodocCo == null)
                    {
                        edodocCo             = new EstadoDoc();
                        edodocCo.EstadoDocId = "CON";
                        edodocCo.Descripcion = "CONFIRMADO";
                        db.Add(edodocCo);
                    }



                    var clienteSYS = db.Cliente.FirstOrDefault(x => x.ClienteId == "SYS");
                    if (clienteSYS == null)
                    {
                        clienteSYS              = new Cliente();
                        clienteSYS.ClienteId    = "SYS";
                        clienteSYS.Rfc          = "XAXX010101000";
                        clienteSYS.Negocio      = "PUBLICO EN GENERAL";
                        clienteSYS.RazonSocial  = "PUBLICO EN GENERAL";
                        clienteSYS.MetodoPagoId = "PUE";
                        clienteSYS.FormaPagoId  = "01";
                        clienteSYS.UsoCfdiid    = "G01";
                        db.Add(clienteSYS);
                    }

                    var proveedorSYS = db.Proveedor.FirstOrDefault(x => x.ProveedorId == "SYS");
                    if (proveedorSYS == null)
                    {
                        proveedorSYS               = new Proveedor();
                        proveedorSYS.ProveedorId   = "SYS";
                        proveedorSYS.Negocio       = "PROVEEDOR GENERICO";
                        proveedorSYS.RazonSocial   = "PROVEEDOR GENERICO";
                        proveedorSYS.Rfc           = "XAXX010101000";
                        proveedorSYS.DiasCredito   = 0;
                        proveedorSYS.LimiteCredito = 0;
                        proveedorSYS.Saldo         = 0;
                        proveedorSYS.IsDeleted     = false;
                        db.Add(proveedorSYS);
                    }

                    var puntosConfig = db.PuntoConfig.FirstOrDefault();
                    if (puntosConfig == null)
                    {
                        puntosConfig               = new PuntoConfig();
                        puntosConfig.DiasReset     = 30;
                        puntosConfig.TasaDescuento = 0.01m;
                        puntosConfig.Vigente       = true;
                        puntosConfig.IsDeleted     = false;
                        db.Add(puntosConfig);
                    }
                    //01010101
                    var prodSys = db.Producto.FirstOrDefault(x => x.ProductoId.Equals("01010101"));

                    if (prodSys == null)
                    {
                        prodSys                 = new Producto();
                        prodSys.ProductoId      = "01010101";
                        prodSys.CategoriaId     = "SYS";
                        prodSys.PresentacionId  = "SYS";
                        prodSys.LaboratorioId   = "SYS";
                        prodSys.Stock           = 0;
                        prodSys.Descripcion     = "Concepto generico facturable";
                        prodSys.PrecioCompra    = 0;
                        prodSys.PrecioCaja      = 0;
                        prodSys.Precio1         = 0;
                        prodSys.Precio2         = 0;
                        prodSys.Precio3         = 0;
                        prodSys.Precio4         = 0;
                        prodSys.Utilidad1       = 0;
                        prodSys.Utilidad2       = 0;
                        prodSys.Utilidad3       = 0;
                        prodSys.Utilidad4       = 0;
                        prodSys.TieneLote       = false;
                        prodSys.IsDeleted       = false;
                        prodSys.CratedAt        = DateTime.Now;
                        prodSys.UnidadMedidaId  = "SYS";
                        prodSys.ClaveProdServId = "01010101";
                        prodSys.ClaveUnidadId   = "H87";
                        prodSys.ChkCaducidad    = false;
                        prodSys.CratedAt        = DateTime.Now;
                        prodSys.CratedBy        = "JMENDOZAJ";

                        db.Add(prodSys);
                    }



                    /**************ACTUALIZA CONEXION REPORTES**************/
                    var informes = db.Informe.ToList();

                    foreach (var informe in informes)
                    {
                        var stiReport = new StiReport();
                        stiReport.LoadPackedReportFromString(informe.Codigo);
                        stiReport.Dictionary.Databases.Clear();
                        stiReport.Dictionary.Databases.Add(new StiSqlDatabase("Dym", Ambiente.Conexion.StandardSecurityConnectionString()));
                        informe.Codigo = stiReport.SavePackedReportToString();
                        db.Update(informe);
                    }
                    /*******************************************************/


                    Ambiente.InformeTicket = db.Informe.FirstOrDefault(x => x.InformeId.Equals(
                                                                           db.InformeConfiguracion.Where(y => y.Ticket == true)
                                                                           .FirstOrDefault().InformeId));

                    Ambiente.InformeFactura = db.Informe.FirstOrDefault(x => x.InformeId.Equals(
                                                                            db.InformeConfiguracion.Where(y => y.Factura == true)
                                                                            .FirstOrDefault().InformeId));

                    Ambiente.InformeCompra = db.Informe.FirstOrDefault(x => x.InformeId.Equals(
                                                                           db.InformeConfiguracion.Where(y => y.Compra == true)
                                                                           .FirstOrDefault().InformeId));

                    Ambiente.InformeCorte = db.Informe.FirstOrDefault(x => x.InformeId.Equals(
                                                                          db.InformeConfiguracion.Where(y => y.Corte == true)
                                                                          .FirstOrDefault().InformeId));

                    Ambiente.InformeDevCom = db.Informe.FirstOrDefault(x => x.InformeId.Equals(
                                                                           db.InformeConfiguracion.Where(y => y.DevCom == true)
                                                                           .FirstOrDefault().InformeId));

                    Ambiente.InformeInvetarios = db.Informe.FirstOrDefault(x => x.InformeId.Equals(
                                                                               db.InformeConfiguracion.Where(y => y.Inventario == true)
                                                                               .FirstOrDefault().InformeId));

                    Ambiente.InformeCierresInv = db.Informe.FirstOrDefault(x => x.InformeId.Equals(
                                                                               db.InformeConfiguracion.Where(y => y.CierresInv == true)
                                                                               .FirstOrDefault().InformeId));


                    if (Ambiente.InformeTicket == null)
                    {
                        Ambiente.Mensaje("!Advertencia! El formato  o regla  de impresión de ticket no existe, esto causará problemas");
                    }

                    if (Ambiente.InformeFactura == null)
                    {
                        Ambiente.Mensaje("!Advertencia! El formato o regla  de impresión de factura no existe, esto causará problemas");
                    }

                    if (Ambiente.InformeCompra == null)
                    {
                        Ambiente.Mensaje("!Advertencia! El formato o regla  de impresión  de compra no existe, esto causará problemas");
                    }

                    if (Ambiente.InformeDevCom == null)
                    {
                        Ambiente.Mensaje("!Advertencia! El formato o regla  de impresión  de devcom no existe, esto causará problemas");
                    }

                    if (Ambiente.InformeCorte == null)
                    {
                        Ambiente.Mensaje("!Advertencia! El formato o regla  de impresión  de corte no existe, esto causará problemas");
                    }

                    if (Ambiente.InformeInvetarios == null)
                    {
                        Ambiente.Mensaje("!Advertencia! El formato o regla  de impresión  de inventarios no existe, esto causará problemas");
                    }

                    if (Ambiente.InformeCierresInv == null)
                    {
                        Ambiente.Mensaje("!Advertencia! El formato o regla  de impresión  de InformeCierresInv no existe, esto causará problemas");
                    }


                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show("Error al inicializar db defautls: " + ex.ToString());
            }

            if (!Ambiente.ServerImgAccesible)
            {
                Ambiente.Mensaje("!Advertencia! Las rutas de red indicadas para llegar al servidor no  pasaron la prueba del 75%. Esto causará rendiento deficiente al acceder a recursos en el server.  valor real: " + Ambiente.ServerImgAccesible);
            }
        }
Beispiel #9
0
        public bool RegistrarImpuesto(Impuesto unImpuesto)
        {
            bool exito = false;

            return(exito);
        }
Beispiel #10
0
        static void Main(string[] args)
        {
            string datilApiNotaDebitoUrl = "https://link.datil.co/debit-notes/";

            // Credenciales del requerimiento
            string myApiKey   = "xxxx";
            string myPassword = "******";

            // Crear requerimiento
            var requestOptions = new RequestOptions();

            requestOptions.ApiKey   = myApiKey;
            requestOptions.Password = myPassword;
            requestOptions.Url      = datilApiNotaDebitoUrl + "issue";

            // Información del comprador
            Comprador comprador = new Comprador("Juan Pérez", "0989898921001", "04", "*****@*****.**", "Calle única Numero 987", "046029400");

            // Información del establecimiento
            Establecimiento establecimiento = new Establecimiento("001", "002", "Av. Primera 234 y calle 5ta");

            // Información del emisor. Necesita de un Establecimiento.
            Emisor emisor = new Emisor("0910000000001", "GUGA S.A. ", "XYZ Corp", "Av.Primera 234 y calle 5ta", "12345", true, establecimiento);

            // Detalle de la nota de débito y sus impuestos.
            var items             = new List <ItemNotaDeDebito>();
            ItemNotaDeDebito item = new ItemNotaDeDebito("Interès por mora", 50.00);

            items.Add(item); //agregar más items a la lista de ser necesario

            // Total de la nota de débito con sus impuestos, no necesita propina.
            var      totales          = new TotalesNotaDeDebito(4359.54, 4882.68);
            var      impuestosDeTotal = new List <Impuesto>();
            Impuesto impuesto         = new Impuesto("2", "0", 0.0, 0.0);

            impuesto.Tarifa = 0.00;
            impuestosDeTotal.Add(impuesto);
            totales.Impuestos = impuestosDeTotal; // agregar más impuestos a la lista de ser necesario.

            // Crear nota de débito
            NotaDeDebito notaDeDebito = new NotaDeDebito();

            // Cabecera
            notaDeDebito.Secuencial = "610";

            DateTime today  = DateTime.Today;
            var      offset = TimeZoneInfo.Local.GetUtcOffset(today);

            notaDeDebito.FechaEmision = new DateTimeOffset(today, offset);
            notaDeDebito.Ambiente     = 1;
            notaDeDebito.TipoEmision  = 1;
            notaDeDebito.FechaEmisionDocumentoModificado = new DateTimeOffset(today, offset);
            notaDeDebito.NumeroDocumentoModificado       = "001-001-000012345";
            notaDeDebito.TipoDocumentoModificado         = "01";

            //notaDeDebito.Version =
            //notaDeDebito.ClaveAcceso =

            // Informaciòn de la nota de débito
            notaDeDebito.Emisor    = emisor;
            notaDeDebito.Comprador = comprador;
            notaDeDebito.Totales   = totales;
            notaDeDebito.Items     = items;

            // Informaciòn adicional
            var infoAdicionalFactura = new Dictionary <string, string>();

            infoAdicionalFactura.Add("Tiempo de entrega", "5 días");
            notaDeDebito.InformacionAdicional = infoAdicionalFactura;

            // Enviar nota de débito
            var respuesta = notaDeDebito.Enviar(requestOptions);

            Console.WriteLine("RESPUESTA:" + respuesta);


            // Obtener el id externo, para luego consultar el estado
            JObject json      = JObject.Parse(respuesta);
            string  idExterno = (string)json["id"];

            Console.WriteLine("ID EXTERNO: " + idExterno); //5832e2c370414663a1bea71938a65bf0

            //Consultar estado de la nota de débito
            var requestOptions2 = new RequestOptions();

            requestOptions2.ApiKey   = myApiKey;
            requestOptions2.Password = myPassword;
            requestOptions2.Url      = datilApiNotaDebitoUrl + idExterno;
            respuesta = NotaDeDebito.Consultar(requestOptions2);
            json      = JObject.Parse(respuesta);
            string estado = (string)json["estado"];

            Console.WriteLine("ESTADO: " + estado); // RECIBIDO
        }
        public static void InicializaDatabaseDefaultsValues()
        {
            try
            {
                using (var db = new DymContext())
                {
                    var estacion = db.Estacion.FirstOrDefault(x => x.EstacionId == "SYS");
                    if (estacion == null)
                    {
                        estacion                   = new Estacion();
                        estacion.EstacionId        = "SYS";
                        estacion.Nombre            = "DEFAUTL";
                        estacion.CanjearPuntosAuto = false;
                        db.Add(estacion);
                    }

                    var sustancia = db.Sustancia.FirstOrDefault(x => x.SustanciaId == "SYS");
                    if (sustancia == null)
                    {
                        sustancia             = new Sustancia();
                        sustancia.SustanciaId = "SYS";
                        sustancia.Nombre      = "DEFAUTL";
                        db.Add(sustancia);
                    }

                    var categoria = db.Categoria.FirstOrDefault(x => x.CategoriaId == "SYS");
                    if (categoria == null)
                    {
                        categoria             = new Categoria();
                        categoria.CategoriaId = "SYS";
                        categoria.Nombre      = "DEFAUTL";
                        db.Add(categoria);
                    }


                    var presentacion = db.Presentacion.FirstOrDefault(x => x.PresentacionId == "SYS");
                    if (presentacion == null)
                    {
                        presentacion = new Presentacion();
                        presentacion.PresentacionId = "SYS";
                        presentacion.Nombre         = "DEFAUTL";
                        db.Add(presentacion);
                    }
                    var laboratorio = db.Laboratorio.FirstOrDefault(x => x.LaboratorioId == "SYS");
                    if (laboratorio == null)
                    {
                        laboratorio = new Laboratorio();
                        laboratorio.LaboratorioId = "SYS";
                        laboratorio.Nombre        = "DEFAUTL";
                        db.Add(laboratorio);
                    }
                    var impuesto = db.Impuesto.FirstOrDefault(x => x.ImpuestoId == "SYS");
                    if (impuesto == null)
                    {
                        impuesto            = new Impuesto();
                        impuesto.ImpuestoId = "SYS";
                        impuesto.Tasa       = 0;
                        impuesto.CImpuesto  = "002";
                        db.Add(impuesto);
                    }

                    var unidadMedida = db.UnidadMedida.FirstOrDefault(x => x.UnidadMedidaId == "SYS");
                    if (unidadMedida == null)
                    {
                        unidadMedida = new UnidadMedida();
                        unidadMedida.UnidadMedidaId = "SYS";
                        unidadMedida.Nombre         = "DEFAUTL";
                        unidadMedida.UnidadSat      = "H87";
                        db.Add(unidadMedida);
                    }

                    var edodocP = db.EstadoDoc.FirstOrDefault(x => x.EstadoDocId == "PEN");
                    if (edodocP == null)
                    {
                        edodocP             = new EstadoDoc();
                        edodocP.EstadoDocId = "PEN";
                        edodocP.Descripcion = "PENDIENTE";
                        db.Add(edodocP);
                    }
                    var edodocCa = db.EstadoDoc.FirstOrDefault(x => x.EstadoDocId == "CAN");
                    if (edodocCa == null)
                    {
                        edodocCa             = new EstadoDoc();
                        edodocCa.EstadoDocId = "CAN";
                        edodocCa.Descripcion = "CANCELADO";
                        db.Add(edodocCa);
                    }
                    var edodocCo = db.EstadoDoc.FirstOrDefault(x => x.EstadoDocId == "CON");
                    if (edodocCo == null)
                    {
                        edodocCo             = new EstadoDoc();
                        edodocCo.EstadoDocId = "CON";
                        edodocCo.Descripcion = "CONFIRMADO";
                        db.Add(edodocCo);
                    }

                    var tipoDocCom = db.TipoDoc.FirstOrDefault(x => x.TipoDocId == "COM");
                    if (tipoDocCom == null)
                    {
                        tipoDocCom             = new TipoDoc();
                        tipoDocCom.TipoDocId   = "COM";
                        tipoDocCom.Descripcion = "COMPRA";
                        db.Add(tipoDocCom);
                    }

                    var tipoDocDvc = db.TipoDoc.FirstOrDefault(x => x.TipoDocId == "DVC");
                    if (tipoDocDvc == null)
                    {
                        tipoDocDvc             = new TipoDoc();
                        tipoDocDvc.TipoDocId   = "DVC";
                        tipoDocDvc.Descripcion = "DEVOLUCIÓN SOBRE COMPRA";
                        db.Add(tipoDocDvc);
                    }

                    var tipoDocDev = db.TipoDoc.FirstOrDefault(x => x.TipoDocId == "DVV");
                    if (tipoDocDev == null)
                    {
                        tipoDocDev             = new TipoDoc();
                        tipoDocDev.TipoDocId   = "DVV";
                        tipoDocDev.Descripcion = "DEVOLUCIÓN SOBRE VENTA";
                        db.Add(tipoDocDev);
                    }

                    var tipoDocFac = db.TipoDoc.FirstOrDefault(x => x.TipoDocId == "FAC");
                    if (tipoDocFac == null)
                    {
                        tipoDocFac             = new TipoDoc();
                        tipoDocFac.TipoDocId   = "FAC";
                        tipoDocFac.Descripcion = "FACTURA";
                        db.Add(tipoDocFac);
                    }

                    var tipoDocRem = db.TipoDoc.FirstOrDefault(x => x.TipoDocId == "REM");
                    if (tipoDocRem == null)
                    {
                        tipoDocRem             = new TipoDoc();
                        tipoDocRem.TipoDocId   = "REM";
                        tipoDocRem.Descripcion = "REMISIÓN";
                        db.Add(tipoDocRem);
                    }

                    var tipoDocTic = db.TipoDoc.FirstOrDefault(x => x.TipoDocId == "TIC");
                    if (tipoDocTic == null)
                    {
                        tipoDocTic             = new TipoDoc();
                        tipoDocTic.TipoDocId   = "TIC";
                        tipoDocTic.Descripcion = "TICKET";
                        db.Add(tipoDocTic);
                    }

                    var tipoDocNc = db.TipoDoc.FirstOrDefault(x => x.TipoDocId == "NC");
                    if (tipoDocNc == null)
                    {
                        tipoDocNc             = new TipoDoc();
                        tipoDocNc.TipoDocId   = "NC";
                        tipoDocNc.Descripcion = "NOTA DE CRÉDITO";
                        db.Add(tipoDocNc);
                    }

                    var tipoDocCxp = db.TipoDoc.FirstOrDefault(x => x.TipoDocId == "CXP");
                    if (tipoDocCxp == null)
                    {
                        tipoDocCxp             = new TipoDoc();
                        tipoDocCxp.TipoDocId   = "CXP";
                        tipoDocCxp.Descripcion = "CUENTA POR PAGAR";
                        db.Add(tipoDocCxp);
                    }
                    var tipoDocTra = db.TipoDoc.FirstOrDefault(x => x.TipoDocId == "TRA");
                    if (tipoDocTra == null)
                    {
                        tipoDocTra             = new TipoDoc();
                        tipoDocTra.TipoDocId   = "TRA";
                        tipoDocTra.Descripcion = "TRASPASO DE MERCANCIAS";
                        db.Add(tipoDocTra);
                    }

                    var clienteSYS = db.Cliente.FirstOrDefault(x => x.ClienteId == "SYS");
                    if (clienteSYS == null)
                    {
                        clienteSYS              = new Cliente();
                        clienteSYS.ClienteId    = "SYS";
                        clienteSYS.Rfc          = "XAXX010101000";
                        clienteSYS.Negocio      = "PUBLICO EN GENERAL";
                        clienteSYS.RazonSocial  = "PUBLICO EN GENERAL";
                        clienteSYS.MetodoPagoId = "PUE";
                        clienteSYS.FormaPagoId  = "01";
                        clienteSYS.UsoCfdiid    = "G01";
                        db.Add(clienteSYS);
                    }
                    var proveedorSYS = db.Proveedor.FirstOrDefault(x => x.ProveedorId == "SYS");
                    if (proveedorSYS == null)
                    {
                        proveedorSYS               = new Proveedor();
                        proveedorSYS.ProveedorId   = "SYS";
                        proveedorSYS.Negocio       = "PROVEEDOR GENERICO";
                        proveedorSYS.RazonSocial   = "PROVEEDOR GENERICO";
                        proveedorSYS.Rfc           = "XAXX010101000";
                        proveedorSYS.DiasCredito   = 0;
                        proveedorSYS.LimiteCredito = 0;
                        proveedorSYS.Saldo         = 0;
                        proveedorSYS.IsDeleted     = false;
                        db.Add(proveedorSYS);
                    }

                    var puntosConfig = db.PuntoConfig.FirstOrDefault();
                    if (puntosConfig == null)
                    {
                        puntosConfig               = new PuntoConfig();
                        puntosConfig.DiasReset     = 30;
                        puntosConfig.TasaDescuento = 0.01m;
                        puntosConfig.Vigente       = true;
                        puntosConfig.IsDeleted     = false;
                        db.Add(puntosConfig);
                    }
                    //01010101
                    var prodSys = db.Producto.FirstOrDefault(x => x.ProductoId.Equals("01010101"));

                    if (prodSys == null)
                    {
                        prodSys                 = new Producto();
                        prodSys.ProductoId      = "01010101";
                        prodSys.CategoriaId     = "SYS";
                        prodSys.PresentacionId  = "SYS";
                        prodSys.LaboratorioId   = "SYS";
                        prodSys.Stock           = 0;
                        prodSys.Descripcion     = "Concepto generico facturable";
                        prodSys.PrecioCompra    = 0;
                        prodSys.PrecioCaja      = 0;
                        prodSys.Precio1         = 0;
                        prodSys.Precio2         = 0;
                        prodSys.Precio3         = 0;
                        prodSys.Precio4         = 0;
                        prodSys.Utilidad1       = 0;
                        prodSys.Utilidad2       = 0;
                        prodSys.Utilidad3       = 0;
                        prodSys.Utilidad4       = 0;
                        prodSys.TieneLote       = false;
                        prodSys.IsDeleted       = false;
                        prodSys.CratedAt        = DateTime.Now;
                        prodSys.UnidadMedidaId  = "SYS";
                        prodSys.ClaveProdServId = "01010101";
                        prodSys.ClaveUnidadId   = "SYS";
                        prodSys.ChkCaducidad    = false;

                        db.Add(prodSys);
                    }


                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show("Error al inicializar db defautls: " + ex.ToString());
            }
        }
 public void LlenarInformacionTributaria(String version)
 {
     factura = new Factura();
     factura.infoTributaria                 = new InfoTributaria();
     factura.infoTributaria.ambiente        = comprobante.EMPRESA.TIPOAMBIENTE.CODIGOTIPOAMBIENTE.ToString();
     factura.infoTributaria.claveAcceso     = comprobante.CLAVEDEACCESO;
     factura.infoTributaria.codDoc          = comprobante.TIPOCOMPROBANTE.CODIGOSRI.Trim();
     factura.infoTributaria.dirMatriz       = comprobante.EMPRESA.DIRECCION1;
     factura.infoTributaria.estab           = comprobante.ESTABLECIMIENTO.NUMERO;
     factura.infoTributaria.nombreComercial = comprobante.EMPRESA.NOMBRECOMERCIAL;
     factura.infoTributaria.ptoEmi          = comprobante.PUNTOEMISION.SERIE;
     factura.infoTributaria.razonSocial     = comprobante.EMPRESA.NOMBRE.Trim();
     factura.infoTributaria.ruc             = comprobante.EMPRESA.RUC;
     factura.infoTributaria.secuencial      = comprobante.NUMEROCOMPROBANTE.ToString().PadLeft(9, '0');
     factura.infoTributaria.tipoEmision     = EnumTipoEmision.NORMAL.GetHashCode().ToString();
     factura.infoFactura = new InfoFactura();
     factura.infoFactura.contribuyenteEspecial   = comprobante.EMPRESA.NUMERORESOLUCION;
     factura.infoFactura.direccionComprador      = comprobante.SOCIONEGOCIO.DIRECCION;
     factura.infoFactura.dirEstablecimiento      = comprobante.ESTABLECIMIENTO.DIRECCION;
     factura.infoFactura.fechaEmision            = comprobante.FECHAEMISION.ToString("dd/MM/yyyy");
     factura.infoFactura.identificacionComprador = comprobante.SOCIONEGOCIO.NUMERODOCUMENTO;
     factura.infoFactura.obligadoContabilidad    = comprobante.EMPRESA.LLEVACONTABILIDAD;
     factura.infoFactura.importeTotal            = comprobante.TOTAL;
     factura.infoFactura.moneda = "DOLAR";
     factura.infoFactura.obligadoContabilidad = comprobante.EMPRESA.LLEVACONTABILIDAD;
     factura.infoFactura.pagos      = new Pagos();
     factura.infoFactura.pagos.pago = new List <Pago>();
     foreach (COMPROBANTEFORMAPAGO pago in comprobante.COMPROBANTEFORMAPAGO)
     {
         Pago regpago = new Pago();
         regpago.formaPago    = pago.FORMAPAGO.TIPOFORMAPAGO.CODIGOSRI;
         regpago.plazo        = pago.PLAZO;
         regpago.total        = pago.VALOR;
         regpago.unidadTiempo = (pago.UNIDADTIEMPO.DESCRIPCION is null ? "dias" : pago.UNIDADTIEMPO.DESCRIPCION);
         factura.infoFactura.pagos.pago.Add(regpago);
     }
     factura.infoFactura.placa = null;
     factura.infoFactura.razonSocialComprador        = comprobante.SOCIONEGOCIO.RAZONSOCIAL;
     factura.infoFactura.tipoIdentificacionComprador = comprobante.SOCIONEGOCIO.TIPOIDENTIFICACION.TIPOIDENTIFICACIONSRI;
     foreach (IMPUESTOCOMPROBANTE impuesto in comprobante.IMPUESTOCOMPROBANTE)
     {
         if (impuesto.BASEIMPONIBLE > 0)
         {
             TotalImpuesto regimp = new TotalImpuesto();
             regimp.baseImponible    = impuesto.BASEIMPONIBLE;
             regimp.codigo           = impuesto.IMPUESTO.CODIGOTIPOIMPUESTO.ToString();
             regimp.codigoPorcentaje = impuesto.IMPUESTO.CODIGOSRI.Trim();
             regimp.tarifa           = impuesto.PORCENTAJE;
             regimp.valor            = impuesto.VALORIMPUESTO;
             factura.infoFactura.totalConImpuestos = new TotalConImpuestos();
             factura.infoFactura.totalConImpuestos.totalImpuesto = new List <TotalImpuesto>();
             factura.infoFactura.totalConImpuestos.totalImpuesto.Add(regimp);
         }
     }
     factura.infoFactura.totalDescuento    = 0;
     factura.infoFactura.totalSinImpuestos = comprobante.TOTALSINIMPUESTO;
     factura.version          = comprobante.TIPOCOMPROBANTE.VERSION;
     factura.id               = "comprobante";
     factura.version          = version;
     factura.detalles         = new Detalles();
     factura.detalles.detalle = new List <Detalle>();
     foreach (DETALLECOMPROBANTE detalle in comprobante.DETALLECOMPROBANTE)
     {
         Detalle regDetalle = new Detalle();
         regDetalle.cantidad               = detalle.CANTIDAD;
         regDetalle.codigoAuxiliar         = detalle.ARTICULO.CODIGOARTICULO.ToString();
         regDetalle.codigoPrincipal        = detalle.ARTICULO.SECCION;
         regDetalle.descripcion            = detalle.ARTICULO.DESCRIPCION;
         regDetalle.descuento              = detalle.DESCUENTO.Value;
         regDetalle.precioTotalSinImpuesto = detalle.BASEIMPONIBLE.Value;
         regDetalle.precioUnitario         = detalle.PVP;
         Impuesto regImpuesto = new Impuesto();
         regImpuesto.baseImponible     = detalle.BASEIMPONIBLE.Value;
         regImpuesto.codigo            = detalle.IMPUESTO.CODIGOTIPOIMPUESTO.ToString();
         regImpuesto.codigoPorcentaje  = detalle.IMPUESTO.CODIGOSRI.Trim();
         regImpuesto.tarifa            = detalle.IMPUESTO.PORCENTAJE;
         regImpuesto.valor             = detalle.VALORIMPUESTO.Value;
         regDetalle.impuestos          = new Impuestos();
         regDetalle.impuestos.impuesto = new List <Impuesto>();
         regDetalle.impuestos.impuesto.Add(regImpuesto);
         factura.detalles.detalle.Add(regDetalle);
     }
     if (comprobante.COMPROBANTEADICIONAL.Count() > 0)
     {
         factura.infoAdicional = new InfoAdicional();
         factura.infoAdicional.campoAdicional = new List <CampoAdicional>();
         CampoAdicional campo;
         foreach (COMPROBANTEADICIONAL comprobanteAdicional in comprobante.COMPROBANTEADICIONAL)
         {
             campo        = new CampoAdicional();
             campo.nombre = comprobanteAdicional.TITULO;
             campo.value  = comprobanteAdicional.DESCRIPCION;
             factura.infoAdicional.campoAdicional.Add(campo);
         }
     }
 }