Esempio n. 1
0
        public void PrecargarRetenciones(string nt, string tipoF, ArrayList arV, ArrayList arT, ArrayList arB)
        {
            string campoPorcentaje = "";

            nit         = nt;
            tipoFactura = tipoF;
            Cargar_Tabla_Rtns();
            Retencion rtns = new Retencion(nt, false);

            if (rtns.TipoSociedad == "N" || rtns.TipoSociedad == "U")
            {
                campoPorcentaje = "PRET_PORCENNODECL";
            }
            else
            {
                campoPorcentaje = "PRET_PORCENDECL";
            }

            for (int n = 0; n < arV.Count; n++)
            {
                DataRow drR = tablaRtns.NewRow();
                drR["CODRET"]    = arT[n].ToString();
                drR["PORCRET"]   = Convert.ToDouble(DBFunctions.SingleData("SELECT COALESCE(" + campoPorcentaje + ",0) FROM PRETENCION WHERE PRET_CODIGO='" + arT[n].ToString() + "';"));
                drR["VALOR"]     = Convert.ToDouble(arV[n]);
                drR["VALORBASE"] = Convert.ToDouble(arB[n]); //(Convert.ToDouble(drR["VALOR"]) * 100) / Convert.ToDouble(drR["PORCRET"]);
                drR["NOMBRERET"] = DBFunctions.SingleData("SELECT PRET_NOMBRE FROM PRETENCION WHERE PRET_CODIGO='" + arT[n].ToString() + "';");
                tablaRtns.Rows.Add(drR);
            }
            ViewState["TABLERETS"]        = tablaRtns;
            ViewState["TABLERETSNIT"]     = nit;
            ViewState["TABLERETSTIPOFAC"] = tipoFactura;
            Bind();
        }
Esempio n. 2
0
        public ReportUtilities.Reportes.Clases.Plantilla Documentos(string tipo_doc, int secuencia, string ruc_cedula)
        {
            ReportUtilities.Reportes.Clases.Plantilla doc = null;
            switch (tipo_doc)
            {
            case "01":
                doc = new Factura(secuencia, ruc_cedula);
                break;

            case "04":
                doc = new NotaCredito(secuencia, ruc_cedula);
                break;

            case "05":
                doc = new NotaDebito(secuencia, ruc_cedula);
                break;

            case "06":
                doc = new GuiaRemision(secuencia, ruc_cedula);
                break;

            case "07":
                doc = new Retencion(secuencia, ruc_cedula);
                break;
            }
            return(doc);
        }
Esempio n. 3
0
        protected void gridRtns_ItemDataBound(object Sender, DataGridItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Footer)
            {
                TextBox txtBase       = (TextBox)e.Item.FindControl("base");
                TextBox txtPorcentaje = (TextBox)e.Item.FindControl("codretb");
                TextBox txtValor      = (TextBox)e.Item.FindControl("valor");
                string  scrTotal      = "PorcentajeVal('" + txtPorcentaje.ClientID + "','" + txtBase.ClientID + "','" + txtValor.ClientID + "');";
                txtBase.Attributes.Add("onkeyup", "NumericMaskE(this,event);" + scrTotal);

                if (rblTipo.SelectedValue == "C")
                {
                    ((TextBox)e.Item.Cells[0].Controls[1]).Attributes.Add("onClick", "ModalDialog(this,'SELECT pret_codigo,pret_nombre,pret_porcennodecl FROM pretencion ORDER BY tret_codigo',new Array());" + scrTotal);
                }
                else if (rblTipo.SelectedValue == "P")
                {
                    Retencion rtns = new Retencion(nit, false);
                    if (rtns.TipoSociedad == "N" || rtns.TipoSociedad == "U")
                    {
                        ((TextBox)e.Item.Cells[0].Controls[1]).Attributes.Add("onClick", "ModalDialog(this,'SELECT pr.pret_codigo codigo,pr.pret_nombre nombre,pr.pret_porcennodecl porcentaje,pr.ttip_proceso proceso, pr.tret_codigo tipo, pr.mcue_codipucprov cuenta FROM pretencion pr where pr.ttip_codigo IN (\\'N\\',\\'T\\') ORDER BY tipo;',new Array());" + scrTotal);
                    }
                    else
                    {
                        ((TextBox)e.Item.Cells[0].Controls[1]).Attributes.Add("onClick", "ModalDialog(this,'SELECT pr.pret_codigo codigo,pr.pret_nombre nombre,pr.pret_porcendecl porcentaje,pr.ttip_proceso proceso, pr.tret_codigo tipo, pr.mcue_codipucprov cuenta FROM pretencion pr where pr.ttip_codigo IN (\\'J\\',\\'T\\') ORDER BY tipo;',new Array());" + scrTotal);
                    }
                }
            }
        }
Esempio n. 4
0
        protected void gridRtns_ItemDataBound(object Sender, DataGridItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Footer)
            {
                Retencion    rtns             = new Retencion(nitProveedor.Text, false);
                DropDownList ddlTiporetencion = (DropDownList)e.Item.FindControl("ddlTiporet");

                if (rtns.TipoSociedad == null)
                {
                    rtns.TipoSociedad = "";
                }

                TextBox txtBase       = (TextBox)e.Item.FindControl("base");
                TextBox txtPorcentaje = (TextBox)e.Item.FindControl("codretb");
                TextBox txtValor      = (TextBox)e.Item.FindControl("valor");

                txtBase.Text = valorFactura.Text;
                string scrTotal = "PorcentajeVal('" + txtPorcentaje.ClientID + "','" + txtBase.ClientID + "','" + txtValor.ClientID + "');";
                txtBase.Attributes.Add("onkeyup", "NumericMaskE(this,event);" + scrTotal);

                DatasToControls bind = new DatasToControls();

                ddlTiporetencion.Attributes.Add("onChange", "Cambio_Retencion(this," + ((TextBox)e.Item.Cells[1].Controls[1]).ClientID + ",'" + rtns.TipoSociedad + "','" + txtPorcentaje.ClientID + "','" + txtBase.ClientID + "','" + txtValor.ClientID + "')");

                bind.PutDatasIntoDropDownList(ddlTiporetencion, "select * from tretencion order by 2;");
                ddlTiporetencion.Items.Insert(0, new ListItem("Seleccione...", "0"));
            }
        }
        private Retencion[] CrearImpuestosDemo2()
        {
            var traslado = new Retencion[]
            {
                new Retencion()
                {
                    importe  = 1000,
                    impuesto = RetencionImpuesto.ISR
                },
                new Retencion()
                {
                    importe  = 12,
                    impuesto = RetencionImpuesto.ISR
                },
                new Retencion()
                {
                    importe  = 12,
                    impuesto = RetencionImpuesto.ISR
                },
                new Retencion()
                {
                    importe  = 12,
                    impuesto = RetencionImpuesto.ISR
                }
            };

            return(traslado);
        }
 public BuscarVoucher(String Ruc)
 {
     InitializeComponent();
     formRetencion = Retencion.retencionForm;
     objPagoDAO    = new PagoDAO();
     objListaS     = objPagoDAO.buscarPago(Ruc, Ventas.UNIDADNEGOCIO);
     gridParams();
     grdCliente.DataSource = objListaS;
     grdCliente.Refresh();
 }
 public BuscarDocumentoRetencion(String tipoDocumento, String ruc)
 {
     InitializeComponent();
     formRetencion        = Retencion.retencionForm;
     objDocumentoDao      = new DocumentoDAO();
     objListDocumentoCab  = objDocumentoDao.buscarDocumentosNotas(tipoDocumento, Ventas.UNIDADNEGOCIO, ruc);
     objListBusquedaTotal = objListDocumentoCab;
     gridParams();
     listDocumento(objListDocumentoCab);
     txt_BuscarDocumento.TextChanged += Txt_BuscarDocumento_TextChanged;
 }
 public IActionResult Update(int IdTipoDoc, [FromBody] Retencion entity)
 {
     try
     {
         retencionBusiness.Update(IdTipoDoc, entity);
         return(Ok(true));
     }
     catch (Exception)
     {
         throw;
     }
 }
 public IActionResult Create([FromBody] Retencion entity)
 {
     try
     {
         retencionBusiness.Create(entity);
         return(Ok(true));
     }
     catch (Exception)
     {
         throw;
     }
 }
Esempio n. 10
0
        protected void btnSeleccionar_Click(object sender, System.EventArgs e)
        {
            DataSet dsRetenciones   = new DataSet();
            string  campoPorcentaje = "";

            btnSeleccionar.Visible = false;
            ddlPrefijo.Enabled     = false;
            ddlNumero.Enabled      = false;
            pnlRetenciones.Visible = true;
            int numeroEntrada = 0;

            try
            {
                numeroEntrada = Convert.ToInt32(ddlNumero.SelectedValue);
            }
            catch
            {
                numeroEntrada = 0;
            };

            nit = DBFunctions.SingleData("SELECT MNIT_NIT FROM MFACTURA" + tabla + " mf " +
                                         "WHERE mf." + prefi + "='" + ddlPrefijo.SelectedValue + "' AND mf." + nume + " = " + numeroEntrada + "; ");
            ViewState["NIT"] = nit;
            Retencion rtns = new Retencion(nit, false);

            if (rtns.TipoSociedad == "N" || rtns.TipoSociedad == "U")
            {
                campoPorcentaje = "pret_porcennodecl";
            }
            else
            {
                campoPorcentaje = "pret_porcendecl";
            }
            string strSql =
                "SELECT PR.PRET_CODIGO CODRET, PR.PRET_NOMBRE NOMBRE, PR." + campoPorcentaje + " PORCRET, " +
                "mfcr.MFAC_VALORETE VALOR, mfcr.MFAC_VALOBASE VALORBASE, " +
                "TRN.TRET_NOMBRE, TTP.TTIP_NOMBRE TTIP_PROCESO, TPP.TTIP_NOMBRE  " +
                "FROM MFACTURA" + tabla + "RETENCION MFCR, MFACTURA" + tabla + " MFC, PRETENCION PR, " +
                "TRETENCION TRN, TTIPOPERSONA TPP, TTIPOPROCESO TTP " +
                "WHERE MFCR." + prefi + "=MFC." + prefi + " AND MFCR." + nume + "=MFC." + nume + " AND " +
                "TRN.TRET_CODIGO=PR.TRET_CODIGO AND TPP.TTIP_CODIGO=PR.TTIP_CODIGO AND TTP.TTIP_CODIGO=PR.TTIP_PROCESO AND " +
                "MFCR." + prefi + "='" + ddlPrefijo.SelectedValue + "' AND MFCR." + nume + " = " + numeroEntrada + " AND " +
                "PR.PRET_CODIGO=MFCR.PRET_CODIGO;";

            DBFunctions.Request(dsRetenciones, IncludeSchema.NO, strSql);
            if (dsRetenciones.Tables.Count > 0)
            {
                tablaRtns = dsRetenciones.Tables[0];
                ViewState["TABLERETS"] = tablaRtns;
                Bind();
            }
        }
Esempio n. 11
0
 public Retencion GetTipoRet(int IdEmpresa, string TipoDoc)
 {
     try
     {
         SiinErpContext context = new SiinErpContext();
         Retencion      entity  = context.Retenciones.FirstOrDefault(x => x.IdEmpresa == IdEmpresa && x.CodRetencion.Equals(TipoDoc));
         return(entity);
     }
     catch (Exception ex)
     {
         errorBusiness.Create("GetRetContab", ex.Message, null);
         throw;
     }
 }
 public static bool Buscar(int id)
 {
     using (var db = new Repositorio <Retencion>())
     {
         if ((retencionReturn = db.Buscar(e => e.RetencionId == id)) != null)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
Esempio n. 13
0
        //Funcion para factuarar un vehiculos ya recibido
        public bool Facturar_Vehiculo_Recibido(DataTable vehiculos)
        {
            int i;

            sqlStrings = new ArrayList();
            bool status = false;
            //Debemos crear el registro de mfacturaproveedor
            FacturaProveedor facturaRepuestos = new FacturaProveedor("FPR", prefijoOrdenPago, prefijoFacturaProveedor, nitProveedor, Almacen, "F", Convert.ToUInt64(numeroOrdenPago), Convert.ToUInt64(numeroFacturaProveedor),
                                                                     //0			1					2						3			4		5		6										7
                                                                     estadoFacturaProveedor, Convert.ToDateTime(fechaFactura), Convert.ToDateTime(fechaVencimiento), Convert.ToDateTime(null), Convert.ToDateTime(fechaIngreso),
                                                                     //8									9											10							11
                                                                     Convert.ToDouble(valorFactura), Convert.ToDouble(valorIva), Convert.ToDouble(valorFletes), Convert.ToDouble(valorIvaFletes), Convert.ToDouble(valorRetencion),
                                                                     //12								13								14							15								16
                                                                     observacion, usuario);

            //17			18
            facturaRepuestos.GrabarFacturaProveedor(false);
            numeroOrdenPago = facturaRepuestos.NumeroFactura.ToString();
            for (i = 0; i < facturaRepuestos.SqlStrings.Count; i++)
            {
                sqlStrings.Add(facturaRepuestos.SqlStrings[i].ToString());
            }

            //Cálculo de retenciones
            RetencionVehiculos = new Retencion(facturaRepuestos.NitProveedor, facturaRepuestos.PrefijoFactura,
                                               Convert.ToInt32(facturaRepuestos.NumeroFactura), (Convert.ToDouble(valorFactura) + Convert.ToDouble(valorFletes)),
                                               (Convert.ToDouble(valorIva) + Convert.ToDouble(valorIvaFletes)), "V", false);
            RetencionVehiculos.Guardar_Retenciones(false);
            for (i = 0; i < RetencionVehiculos.Sqls.Count; i++)
            {
                sqlStrings.Add(RetencionVehiculos.Sqls[i].ToString());
            }

            //Ahora debemos actualizar los registros de mvehiculo y asociarlo a la factura del proveedor
            for (i = 0; i < vehiculos.Rows.Count; i++)
            {
                sqlStrings.Add("UPDATE mvehiculo SET pdoc_codiordepago='" + prefijoOrdenPago + "', mfac_numeordepago=" + numeroOrdenPago + ", test_tipoesta=20 WHERE mcat_vin='" + vehiculos.Rows[i][2].ToString() + "' and test_tipoesta = 10");
            }
            if (DBFunctions.Transaction(sqlStrings))
            {
                status      = true;
                processMsg += DBFunctions.exceptions + "<br>";
            }
            else
            {
                processMsg += "Error: " + DBFunctions.exceptions + "<br><br>";
            }
            return(status);
        }
Esempio n. 14
0
 public BusquedaProveedor(String DocumentoTipo)
 {
     InitializeComponent();
     objProveedorDAO      = new ProveedorDAO();
     TipoDocumento        = DocumentoTipo;
     formRetencion        = Retencion.retencionForm;
     formCajaLetra        = CanjeLetraNuevo.canjeletranuevo;
     formReporte          = ReporteFacturaProveeodr.formReporteProveedor;
     formCheques          = ReporteVoucher.formReporteCheques;
     objListProveedor     = objProveedorDAO.listarProveedor();
     objListBusquedaTotal = objListProveedor;
     gridParams();
     listProveedor(objListProveedor);
     txt_BuscarCliente.TextChanged += Txt_BuscarCliente_TextChanged;
 }
Esempio n. 15
0
 public void Create(Retencion entity)
 {
     try
     {
         entity.FechaCreacion = DateTimeOffset.Now;
         SiinErpContext context = new SiinErpContext();
         context.Retenciones.Add(entity);
         context.SaveChanges();
     }
     catch (Exception ex)
     {
         errorBusiness.Create("CreateRetContab", ex.Message, null);
         throw;
     }
 }
Esempio n. 16
0
 public void Update(int IdTipoDoc, Retencion entity)
 {
     try
     {
         SiinErpContext context = new SiinErpContext();
         Retencion      ob      = context.Retenciones.Find(IdTipoDoc);
         ob.CodRetencion  = entity.CodRetencion;
         ob.Porcentaje    = entity.Porcentaje;
         ob.BaseRetencion = entity.BaseRetencion;
         ob.Descripcion   = entity.Descripcion;
         ob.Estado        = entity.Estado;
         context.SaveChanges();
     }
     catch (Exception ex)
     {
         errorBusiness.Create("UpdateRetContab", ex.Message, null);
         throw;
     }
 }
 public static bool Eliminar(int id)
 {
     using (var db = new Repositorio <Retencion>())
     {
         if (Buscar(id))
         {
             if (db.Eliminar(retencionReturn))
             {
                 return(true);
             }
             else
             {
                 return(false);
             }
         }
         else
         {
             retencionReturn = null;
             return(false);
         }
     }
 }
 public static bool Guardar(Retencion retencion)
 {
     using (var db = new Repositorio <Retencion>())
     {
         if (Buscar(retencion.RetencionId) == false)
         {
             if (db.Guardar(retencion) != null)
             {
                 retencionReturn = retencion;
                 return(true);
             }
             else
             {
                 retencionReturn = null;
                 return(false);
             }
         }
         else
         {
             db.Modificar(retencion);
             return(true);
         }
     }
 }
        /// <summary>
        /// Genera asiento con retención IUE
        /// </summary>
        /// <param name="retencion"></param>
        private void GenerarRetenido(RetencionVista retencion)
        {
            var usuarioActual     = HttpContext.User.Identity.Name;
            var comprobanteActual = comprobantesManager.GetComprobante(retencion.ComprobanteId);

            var retencionIt    = (retencion.Importe * 0.03M);
            var retencionIue   = retencion.TipoRetencionId == 1 ? (retencion.Importe * 0.125M) : (retencion.Importe * 0.05M);
            var retencionRcIva = retencion.Importe * 0.13M;
            var retencionIueBe = retencion.Importe * 0.125M;

            var anexoTributarioId  = 0;
            var importeRetencion   = 0M;
            var importeRetencionIt = 0M;
            var importeCajaBancos  = 0M;

            switch (retencion.TipoRetencionId)
            {
            case 1:
            case 2:
                anexoTributarioId  = 10;
                importeRetencion   = retencionIue;
                importeRetencionIt = retencionIt;
                importeCajaBancos  = retencion.Importe - retencionIt - retencionIue;
                break;

            case 3:
                anexoTributarioId  = 8;
                importeRetencion   = retencionRcIva;
                importeRetencionIt = retencionIt;
                importeCajaBancos  = retencion.Importe - retencionIt - retencionRcIva;
                break;

            case 4:
                anexoTributarioId = 8;
                importeRetencion  = retencionRcIva;
                importeCajaBancos = retencion.Importe - retencionRcIva;
                break;

            case 5:
                anexoTributarioId = 11;
                importeRetencion  = retencionIueBe;
                importeCajaBancos = retencion.Importe - retencionIueBe;
                break;
            }

            var cuentaAsientoPersonalizada = new CuentaAsiento
            {
                ComprobanteId       = retencion.ComprobanteId,
                CuentaContableId    = retencion.CuentaContableId,
                Glosa               = retencion.Glosa,
                Debe                = retencion.Importe,
                Haber               = 0,
                TerritorioId        = 1,
                PlanProgramaticoId  = 6,
                ContraparteId       = 1,
                AnexoTributarioId   = anexoTributarioId,
                EsDebe              = true,
                EsAjuste            = false,
                UsuarioCreacion     = usuarioActual,
                UsuarioModificacion = usuarioActual
            };

            cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoPersonalizada);

            if (retencion.TipoRetencionId == 1 || retencion.TipoRetencionId == 2 || retencion.TipoRetencionId == 3)
            {
                var cuentaAsientoIt = new CuentaAsiento
                {
                    ComprobanteId       = retencion.ComprobanteId,
                    CuentaContableId    = 1280,
                    Glosa               = retencion.Glosa,
                    Debe                = 0,
                    Haber               = retencionIt,
                    TerritorioId        = 1,
                    PlanProgramaticoId  = 6,
                    ContraparteId       = 1,
                    AnexoTributarioId   = 9, //Retención IT
                    EsDebe              = false,
                    EsAjuste            = false,
                    UsuarioCreacion     = usuarioActual,
                    UsuarioModificacion = usuarioActual
                };

                cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoIt);
            }

            if (retencion.TipoRetencionId == 1 || retencion.TipoRetencionId == 2)
            {
                var cuentaAsientoIue = new CuentaAsiento
                {
                    ComprobanteId       = retencion.ComprobanteId,
                    CuentaContableId    = 1281,
                    Glosa               = retencion.Glosa,
                    Debe                = 0,
                    Haber               = retencionIue,
                    TerritorioId        = 1,
                    PlanProgramaticoId  = 6,
                    ContraparteId       = 1,
                    AnexoTributarioId   = anexoTributarioId,
                    EsDebe              = false,
                    EsAjuste            = false,
                    UsuarioCreacion     = usuarioActual,
                    UsuarioModificacion = usuarioActual
                };

                cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoIue);
            }


            if (retencion.TipoRetencionId == 3 || retencion.TipoRetencionId == 4)
            {
                var cuentaAsientoRcIva = new CuentaAsiento
                {
                    ComprobanteId       = retencion.ComprobanteId,
                    CuentaContableId    = 1283,
                    Glosa               = retencion.Glosa,
                    Debe                = 0,
                    Haber               = retencionRcIva,
                    TerritorioId        = 1,
                    PlanProgramaticoId  = 6,
                    ContraparteId       = 1,
                    AnexoTributarioId   = anexoTributarioId,
                    EsDebe              = false,
                    EsAjuste            = false,
                    UsuarioCreacion     = usuarioActual,
                    UsuarioModificacion = usuarioActual
                };

                cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoRcIva);
            }

            if (retencion.TipoRetencionId == 5)
            {
                var cuentaAsientoIueBe = new CuentaAsiento
                {
                    ComprobanteId       = retencion.ComprobanteId,
                    CuentaContableId    = 1282,
                    Glosa               = retencion.Glosa,
                    Debe                = 0,
                    Haber               = retencionIueBe,
                    TerritorioId        = 1,
                    PlanProgramaticoId  = 6,
                    ContraparteId       = 1,
                    AnexoTributarioId   = anexoTributarioId,
                    EsDebe              = false,
                    EsAjuste            = false,
                    UsuarioCreacion     = usuarioActual,
                    UsuarioModificacion = usuarioActual
                };

                cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoIueBe);
            }

            var cuentaAsientoCaja = new CuentaAsiento
            {
                ComprobanteId       = retencion.ComprobanteId,
                CuentaContableId    = 775,
                Glosa               = retencion.Glosa,
                Debe                = 0,
                Haber               = importeCajaBancos,
                TerritorioId        = 1,
                PlanProgramaticoId  = 6,
                ContraparteId       = 1,
                AnexoTributarioId   = anexoTributarioId,
                EsDebe              = false,
                EsAjuste            = false,
                UsuarioCreacion     = usuarioActual,
                UsuarioModificacion = usuarioActual
            };

            cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoCaja);

            // Insertar Objeto Retencion
            var retencionEntidad = new Retencion
            {
                ComprobanteId       = retencion.ComprobanteId,
                FechaComprobante    = comprobanteActual.FechaComprobante,
                TipoRetencionId     = (short)retencion.TipoRetencionId,
                ImporteRetencion    = importeRetencion,
                ImporteRetencionIT  = importeRetencionIt,
                Retenido            = true,
                UsuarioCreacion     = usuarioActual,
                UsuarioModificacion = usuarioActual
            };

            retencionesManager.InsertRetencion(retencionEntidad);
        }
Esempio n. 20
0
        //Funcion para facturar un vehiculo ya recibido
        public bool Facturar_Vehiculo_Recibido(string catalogoVehiculo, string vinVehiculo)
        {
            int i;

            sqlStrings = new ArrayList();
            bool             status          = false;
            FacturaProveedor facturaVehiculo = new FacturaProveedor("FPR", prefijoOrdenPago, prefijoFacturaProveedor, nitProveedor, Almacen, "F", Convert.ToUInt64(numeroOrdenPago), Convert.ToUInt64(numeroFacturaProveedor),
                                                                    //0			1					2						3			4		5		6										7
                                                                    estadoFacturaProveedor, Convert.ToDateTime(fechaFactura), Convert.ToDateTime(fechaVencimiento), Convert.ToDateTime(null), Convert.ToDateTime(fechaIngreso),
                                                                    //8									9											10							11
                                                                    Convert.ToDouble(valorFactura), Convert.ToDouble(valorIva), Convert.ToDouble(valorFletes), Convert.ToDouble(valorIvaFletes), Convert.ToDouble(valorRetencion),
                                                                    //12								13								14							15								16
                                                                    observacion, usuario);

            //17			18
            facturaVehiculo.GrabarFacturaProveedor(false);
            numeroOrdenPago = facturaVehiculo.NumeroFactura.ToString();
            for (i = 0; i < facturaVehiculo.SqlStrings.Count; i++)
            {
                sqlStrings.Add(facturaVehiculo.SqlStrings[i].ToString());
            }

            //Cálculo de retenciones
            RetencionVehiculos = new Retencion(facturaVehiculo.NitProveedor, facturaVehiculo.PrefijoFactura,
                                               Convert.ToInt32(facturaVehiculo.NumeroFactura), (Convert.ToDouble(valorFactura) + Convert.ToDouble(valorFletes)),
                                               (Convert.ToDouble(valorIva) + Convert.ToDouble(valorIvaFletes)), "V", false);

            if (dtRetenciones == null)
            {
                RetencionVehiculos.Guardar_Retenciones(false);
            }
            else
            {
                RetencionVehiculos.Guardar_Retenciones(false, dtRetenciones);
            }

            for (i = 0; i < RetencionVehiculos.Sqls.Count; i++)
            {
                sqlStrings.Add(RetencionVehiculos.Sqls[i].ToString());
            }

            //Ahora debemos actualizar el registro de mvehiculo y asociarlo a la factura del proveedor
            //Si el vehiculo esta facturado o asignado no se modifica el estado del vehiculo.
            string estadoVehiculo = DBFunctions.SingleData("SELECT test_tipoesta FROM dbxschema.mvehiculo WHERE mcat_vin='" + vinVehiculo + "' order by mveh_inventario desc FETCH FIRST 1 ROWS ONLY;");
            Int32  numeroVehiculo = Convert.ToInt32(DBFunctions.SingleData("SELECT coalesce(mveh_inventario,0) FROM dbxschema.mvehiculo WHERE mcat_vin='" + vinVehiculo + "' order by mveh_inventario desc FETCH FIRST 1 ROWS ONLY;"));

            if (estadoVehiculo == "10")
            {
                sqlStrings.Add("UPDATE mvehiculo SET pdoc_codiordepago='" + prefijoOrdenPago + "', mfac_numeordepago=" + numeroOrdenPago + ", mveh_valocomp=" + valorFactura + ", MVEH_VALOIVA=" + valorIva + ", test_tipoesta=20 WHERE mveh_inventario = " + numeroVehiculo + " ");
            }
            else
            {
                sqlStrings.Add("UPDATE mvehiculo SET pdoc_codiordepago='" + prefijoOrdenPago + "', mfac_numeordepago=" + numeroOrdenPago + ", mveh_valocomp=" + valorFactura + ", MVEH_VALOIVA=" + valorIva + " WHERE mveh_inventario = " + numeroVehiculo + " ");
            }

            //Ahora Actualizamos el consecutivo
            if (DBFunctions.Transaction(sqlStrings))
            {
                status      = true;
                processMsg += DBFunctions.exceptions + "<br>";
            }
            else
            {
                processMsg += "Error: " + DBFunctions.exceptions + "<br><br>";
            }
            return(status);
        }
Esempio n. 21
0
        /// <summary>
        /// Función que lee los nodos XML de un documento CFDI
        /// </summary>
        /// <param name="padre"></param>
        private void LeerNodos(XmlNode padre)
        {
            // Procesamos el nodo
            switch (padre.Prefix)
            {
            case "cfdi": {
                switch (padre.LocalName)
                {
                case "Comprobante":
                    cfdi           = new Comprobante();
                    cfdi.atributos = leerAtributos(padre);
                    break;

                case "Emisor":
                    cfdi.Emisor           = new Emisor();
                    cfdi.Emisor.atributos = leerAtributos(padre);
                    break;

                case "DomicilioFiscal":
                    cfdi.Emisor.DomicilioFiscal           = new DomicilioFiscal();
                    cfdi.Emisor.DomicilioFiscal.atributos = leerAtributos(padre);
                    break;

                case "ExpedidoEn":
                    cfdi.Emisor.ExpedidoEn           = new ExpedidoEn();
                    cfdi.Emisor.ExpedidoEn.atributos = leerAtributos(padre);
                    break;

                case "RegimenFiscal":
                    cfdi.Emisor.RegimenFiscal = padre.Attributes["Regimen"].Value;
                    break;

                case "Receptor":
                    cfdi.Receptor           = new Receptor();
                    cfdi.Receptor.atributos = leerAtributos(padre);
                    break;

                case "Domicilio":
                    cfdi.Receptor.Domicilio           = new Domicilio();
                    cfdi.Receptor.Domicilio.atributos = leerAtributos(padre);
                    break;

                case "Conceptos":
                    cfdi.Conceptos = new Conceptos();
                    break;

                case "Concepto":
                    Concepto concepto = new Concepto();
                    concepto.atributos = leerAtributos(padre);
                    cfdi.Conceptos.Agregar(concepto);
                    break;

                case "Impuestos":
                    cfdi.Impuestos           = new Impuestos();
                    cfdi.Impuestos.atributos = leerAtributos(padre);
                    break;

                case "Traslados":
                    cfdi.Impuestos.Traslados = new Traslados();
                    break;

                case "Traslado":
                    Traslado traslado = new Traslado();
                    traslado.atributos = leerAtributos(padre);
                    cfdi.Impuestos.Traslados.Agregar(traslado);
                    break;

                case "Retenciones":
                    cfdi.Impuestos.Retenciones = new Retenciones();
                    break;

                case "Retencion":
                    Retencion retencion = new Retencion();
                    retencion.atributos = leerAtributos(padre);
                    cfdi.Impuestos.Retenciones.Agregar(retencion);
                    break;
                }
                break;
            }

            case "tfd": {
                switch (padre.LocalName)
                {
                case "TimbreFiscalDigital":
                    TimbreFiscalDigital timbre = new TimbreFiscalDigital();
                    timbre.atributos = leerAtributos(padre);
                    cfdi.AgregarComplemento(timbre);
                    break;
                }
                break;
            }

            case "nomina": {
                switch (padre.LocalName)
                {
                case "Nomina":
                    Nomina nomina = new Nomina();
                    nomina.atributos = leerAtributos(padre);
                    cfdi.AgregarComplemento(nomina);
                    break;

                case "Percepciones":
                    Percepciones percepciones = new Percepciones();
                    percepciones.atributos = leerAtributos(padre);
                    nomina = cfdi.Complemento("nomina") as Nomina;
                    nomina.Percepciones = new Percepciones();
                    break;

                case "Percepcion":
                    Percepcion percepcion = new Percepcion();
                    percepcion.atributos = leerAtributos(padre);
                    nomina = cfdi.Complemento("nomina") as Nomina;
                    nomina.Percepciones.Agregar(percepcion);
                    break;

                case "Deducciones":
                    Deducciones deducciones = new Deducciones();
                    deducciones.atributos = leerAtributos(padre);
                    nomina             = cfdi.Complemento("nomina") as Nomina;
                    nomina.Deducciones = deducciones;
                    break;

                case "Deduccion":
                    Deduccion deduccion = new Deduccion();
                    deduccion.atributos = leerAtributos(padre);
                    nomina = cfdi.Complemento("nomina") as Nomina;
                    nomina.Deducciones.Agregar(deduccion);
                    break;

                case "Incapacidades":
                    nomina = cfdi.Complemento("nomina") as Nomina;
                    nomina.Incapacidades = new Incapacidades();
                    break;

                case "Incapacidad":
                    Incapacidad incapacidad = new Incapacidad();
                    incapacidad.atributos = leerAtributos(padre);
                    nomina = cfdi.Complemento("nomina") as Nomina;
                    nomina.Incapacidades.Agregar(incapacidad);
                    break;

                case "HorasExtras":
                    nomina             = cfdi.Complemento("nomina") as Nomina;
                    nomina.HorasExtras = new HorasExtras();
                    break;

                case "HorasExtra":
                    HorasExtra horasExtra = new HorasExtra();
                    horasExtra.atributos = leerAtributos(padre);
                    nomina = cfdi.Complemento("nomina") as Nomina;
                    nomina.HorasExtras.Agregar(horasExtra);
                    break;
                }
                break;
            }

            case "ecc": {
                switch (padre.LocalName)
                {
                case "EstadoDeCuentaCombustible":
                    EstadoDeCuentaCombustible edoCta = new EstadoDeCuentaCombustible();
                    edoCta.atributos = leerAtributos(padre);
                    cfdi.AgregarComplemento(edoCta);
                    break;

                case "Conceptos":
                    EstadoDeCuentaCombustible combustible = cfdi.Complemento("combustible") as EstadoDeCuentaCombustible;
                    combustible.conceptos = new ConceptosEstadoDeCuentaCombustibles();
                    break;

                case "ConceptoEstadoDeCuentaCombustible":
                    ConceptoEstadoDeCuenta concepto = new ConceptoEstadoDeCuenta();
                    concepto.atributos = leerAtributos(padre);
                    combustible        = cfdi.Complemento("combustible") as EstadoDeCuentaCombustible;
                    combustible.Agregar(concepto);
                    break;

                case "Traslados":
                    combustible = cfdi.Complemento("combustible") as EstadoDeCuentaCombustible;
                    combustible.conceptos[combustible.conceptos.Elementos - 1].traslados = new TrasladosConceptosEstadoDeCuentaCombustible();
                    break;

                case "Traslado":
                    TrasladoEstadoDeCuentaCombustible traslado = new TrasladoEstadoDeCuentaCombustible();
                    traslado.atributos = leerAtributos(padre);
                    combustible        = cfdi.Complemento("combustible") as EstadoDeCuentaCombustible;
                    combustible.conceptos[combustible.conceptos.Elementos - 1].AgregaTraslado(traslado);
                    break;
                }
                break;
            }

            case "implocal": {
                switch (padre.LocalName)
                {
                case "ImpuestosLocales":
                    ImpuestosLocales implocal = new ImpuestosLocales();
                    implocal.atributos = leerAtributos(padre);
                    cfdi.AgregarComplemento(implocal);
                    break;
                }
                break;
            }
            }

            // Procesamos los nodos hijos
            for (int i = 0; i < padre.ChildNodes.Count; i++)
            {
                if (padre.ChildNodes[i].NodeType == XmlNodeType.Element)
                {
                    LeerNodos(padre.ChildNodes[i]);
                }
            }
        }
 public RetencionViewModel(Retencion retencion)
 {
     this.Importe  = retencion.Importe;
     this.Impuesto = retencion.Impuesto;
 }
Esempio n. 23
0
        private void buttonGuardar_Click(object sender, EventArgs e)
        {
            switch (tabControlRegistros.SelectedIndex)
            {
            case 0:
            {
                if (Validar(1))
                {
                    int id;
                    int.TryParse(textBoxEmpleadoId.Text, out id);
                    Empleado empleado = new Empleado(id, textBoxEmpleadoNombre.Text, dateTimePickerEmpleadoNacimiento.Value, int.Parse(maskedTextBoxEmpleadoSueldo.Text));
                    if (BLL.EmpleadosBLL.Guardar(empleado))
                    {
                        MessageBox.Show("Se guardo el empleado!");
                        textBoxEmpleadoId.Text = BLL.EmpleadosBLL.empleadoReturn.EmpleadoId.ToString();
                    }
                    else
                    {
                        MessageBox.Show("No see guardo el empleado!");
                    }
                }
                break;
            }

            case 1:
            {
                if (Validar(1))
                {
                    int id;
                    int.TryParse(textBoxRetencionId.Text, out id);
                    Retencion retencion = new Retencion(id, textBoxRetencionDescripcion.Text, int.Parse(textBoxRetencionValor.Text));
                    if (BLL.RetencionesBLL.Guardar(retencion))
                    {
                        MessageBox.Show("Se guardo la retencion!");
                        textBoxRetencionId.Text = BLL.RetencionesBLL.retencionReturn.RetencionId.ToString();
                    }
                    else
                    {
                        MessageBox.Show("No se guardo la retencion!");
                    }
                }
                break;
            }

            case 2:
            {
                if (Validar(1))
                {
                    int id;
                    int.TryParse(textBoxTipoEmailId.Text, out id);
                    TipoEmail tipoEmail = new TipoEmail(id, textBoxTipoEmailDescripcion.Text);
                    if (BLL.TiposEmailsBLL.Guardar(tipoEmail))
                    {
                        MessageBox.Show("Se guardo el tipo de email!");
                        textBoxTipoEmailId.Text = BLL.TiposEmailsBLL.tipoEmailReturn.TipoEmailId.ToString();
                    }
                    else
                    {
                        MessageBox.Show("No se guardo el tipo de email!");
                    }
                }
                break;
            }

            case 3:
            {
                if (Validar(1))
                {
                    int id;
                    int.TryParse(textBoxEmpleadoEmailId.Text, out id);
                    EmpleadoEmail empleadoEmail = new EmpleadoEmail(id, Convert.ToInt32(comboBoxEmpleadosId.SelectedValue), Convert.ToInt32(comboBoxTipoEmailId.SelectedValue), textBoxEmpleadoEmail.Text);
                    if (BLL.EmpleadosEmailsBLL.Guardar(empleadoEmail))
                    {
                        MessageBox.Show("Se guardo el email!");
                        textBoxEmpleadoEmailId.Text = BLL.EmpleadosEmailsBLL.empleadoEmailReturn.EmpleadoEmailId.ToString();
                    }
                    else
                    {
                        MessageBox.Show("No se guardo el email!");
                    }
                }
                break;
            }

            case 4:
            {
                if (Validar(1))
                {
                    int id;
                    int.TryParse(textBoxEmpleadoRetencionId.Text, out id);
                    EmpleadoRetencion empleadoRetencion = new EmpleadoRetencion(id, Convert.ToInt32(comboBoxEmpleadoRetencionEmpleadoId.SelectedValue), Convert.ToInt32(comboBoxEmpleadoRetencionRetencionId.SelectedValue));
                    if (BLL.EmpleadosRetencionesBLL.Guardar(empleadoRetencion))
                    {
                        MessageBox.Show("Se guardo la retencion en el empleado!");
                        textBoxEmpleadoRetencionId.Text = BLL.EmpleadosRetencionesBLL.empleadoRetencionReturn.EmpleadoRetencionId.ToString();
                    }
                    else
                    {
                        MessageBox.Show("No se guardo la retencion en el empleado!");
                    }
                }
                break;
            }
            }
        }
Esempio n. 24
0
        protected void NewAjust(Object Sender, EventArgs E)
        {
            if (!VerificarValoresGrillaFacturacion())
            {
                BindDatas();
                return;
            }
            //QUEDA
            int diasP = -1;

            try{ diasP = Convert.ToInt16(txtDiasP.Text); }
            catch {};
            if (diasP < 0 || diasP > 180)
            {
                BindDatas();
                Utils.MostrarAlerta(Response, "El numero de días de plazo dado NO es válido, debe estar entre 0 y 180!");
                return;
            }
            if (ddlCodDoc.SelectedIndex == 0 && ddlCodDoc.Items.Count > 1)
            {
                BindDatas();
                Utils.MostrarAlerta(Response, "Por favor seleccione el Documento para realizar el proceso !!!");
                return;
            }

            string nLis1 = Request.QueryString["nped"];

            string[] nLis     = nLis1.ToString().Split('-');//Numero de Lista de empaque
            string   ano_cont = DBFunctions.SingleData("SELECT pano_ano from cinventario");
            int      ano      = Convert.ToInt16(ano_cont);
            int      mes      = Convert.ToInt16(DBFunctions.SingleData("select PMES_MES from CINVENTARIO;"));

            if (ano != Convert.ToDateTime(tbDate.Text).Year || mes != Convert.ToDateTime(tbDate.Text).Month)
            {
                Utils.MostrarAlerta(Response, "Fecha NO vigente !!");
                if (HttpContext.Current.User.Identity.Name.ToLower().ToString() == "abarrios")  // EUROTECK temporalmente permite facturar con otras fechas
                {
                }
                else
                {
                    return;
                }
            }
            if (ddlCodDoc.SelectedItem.Value == "Seleccione..")
            {
                Utils.MostrarAlerta(Response, "Usted NO ha configurado un documento del tipo FC en esta sede para este proceso..!");
                return;
            }
            btnAjus.Enabled = false; // apaga el boton de facturar

            PedidoFactura pedfac = new PedidoFactura(txtNIT.Text, Convert.ToDateTime(tbDate.Text), txtObs.Text,
                                                     //											1				2					3
                                                     diasP, nLis1, ddlVendedor.SelectedItem.Value, ddlCodDoc.SelectedItem.Value, Convert.ToUInt32(txtNumDoc.Text),
                                                                                                   //4    5               6                           7                           8
                                                     Convert.ToDouble(txtTotIF.Text.Substring(1)), Convert.ToDouble(tbIvaFlts.Text.Substring(1)),
                                                                                                   //9                                                                              10
                                                     Convert.ToDouble(txtSubTotal.Text.Substring(1)) - Convert.ToDouble(txtDesc.Text.Substring(1)),
                                                                                                   //11
                                                     Convert.ToDouble(txtTotal.Text.Substring(1)), // 12
                                                     kit,                                          // 13
                                                     AnoA,                                         //14
                                                     almacen                                       // 15
                                                     );

            if (hdCargoTrans.Value != "")
            {
                pedfac.CargoOrden = hdCargoTrans.Value;
            }
            int n;

            for (n = 0; n < dtInserts.Rows.Count; n++)
            {
                string codI = "";
                Referencias.Guardar(dtInserts.Rows[n][0].ToString(), ref codI, DBFunctions.SingleData("SELECT plin_tipo FROM plineaitem WHERE plin_codigo='" + dtInserts.Rows[n][11].ToString() + "'"));
                pedfac.InsertaFila(codI, Convert.ToDouble(dtInserts.Rows[n][2]),
                                   //1
                                   Convert.ToDouble(dtInserts.Rows[n][3]), Convert.ToDouble(dtInserts.Rows[n][4]),
                                   //2											3
                                   Convert.ToDouble(dtInserts.Rows[n][5]), Convert.ToDouble(dtInserts.Rows[n][9]), dtInserts.Rows[n]["PPED_CODIGO"].ToString(), dtInserts.Rows[n]["MPED_NUMEPEDI"].ToString());
                //4											5                                                   6                                       7
            }

            // causacion de retenciones en la venta
            Retencion retencion = new Retencion(
                txtNIT.Text,

                ddlCodDoc.SelectedItem.Value,                                                                  // PrefijoFactura,
                Convert.ToInt32(txtNumDoc.Text),                                                               // NumeroFactura,
                Convert.ToDouble(txtSubTotal.Text.Substring(1)) - Convert.ToDouble(txtDesc.Text.Substring(1)), //ValorFactura,
                Convert.ToDouble(txtIVA.Text.Substring(1)),                                                    //ValorIva,
                "R", true);

            if (pedfac.RealizarFac(true))
            {
                if (retencion.Guardar_Retenciones(true))
                {
                    string indexPage     = ConfigurationManager.AppSettings["MainIndexPage"];
                    string indexAjaxPage = ConfigurationManager.AppSettings["MainAjaxPage"];
                    Session.Clear();

                    contaOnline.contabilizarOnline(ddlCodDoc.SelectedItem.Value, Convert.ToInt32(txtNumDoc.Text), DateTime.Now, ddlAlmacen.SelectedValue);

                    if (Request.QueryString["orig"] == "Inventarios.ListasEmpaque")
                    {
                        Response.Redirect(indexPage + "?process=Inventarios.ListasEmpaque&actor=C&subprocess=Fact&prefF=" + pedfac.Coddocumentof + "&numF=" + pedfac.Numdocumentof + "&factGen=1");
                    }
                    //Response.Redirect("" + indexPage + "?process=Inventarios.VistaImpresion&prefFact="+pedfac.Coddocumentof+"&numFact="+pedfac.Numdocumentof+"&cliente="+Tipo+"&orig="+Request.QueryString["orig"]+"");
                    else if (Request.QueryString["orig"] == "Inventarios.CrearPedido")
                    {
                        Response.Redirect(indexAjaxPage + "?process=Inventarios.CrearPedido&actor=C&subprocess=Fact&prefF=" + pedfac.Coddocumentof + "&numF=" + pedfac.Numdocumentof + "");
                    }
                    //Response.Redirect(indexPage+"?process=Inventarios.ListasEmpaque&actor=C&subprocess=Fact");
                    //lbInfo.Text +="<br>BIEN :" +pedfac.ProcessMsg;
                }
                else
                {
                    lbInfo.Text += retencion.Mensajes;
                }
            }
            else
            {
                lbInfo.Text += "<br>ERROR :" + pedfac.ProcessMsg;
            }
        }
Esempio n. 25
0
        static void Main_(string[] args)
        {
            string datilApiRetencionUrl = "https://link.datil.co/retentions/";

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

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

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

            // Crear retención
            Retencion retencion = new Retencion();

            // Cabecera de la retención
            retencion.Secuencial = "610";

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

            retencion.FechaEmision = new DateTimeOffset(today, offset);

            retencion.Ambiente = 1;

            retencion.TipoEmision = 1;

            retencion.PeriodoFiscal = "09/2016";

            //retencion.Version =

            //retencion.ClaveAcceso =

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

            retencion.Sujeto = sujetoRetenido;

            // 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);

            retencion.Emisor = emisor;

            // Impuestos de la retención.
            var           impuestos = new List <ItemRetencion>();
            ItemRetencion impuesto  = new ItemRetencion("2", "3", 14, 4359.54, 610.36, new DateTimeOffset(today, offset), "001-002-000000123", "01");

            impuestos.Add(impuesto);  // agregar más impuestos a la retenciòn  de ser necesario
            retencion.items = impuestos;

            // Información adicional
            var infoAdicionalRetencion = new Dictionary <string, string>();

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

            // Enviar retención
            var respuesta = retencion.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 retención
            var requestOptions2 = new RequestOptions();

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

            Console.WriteLine("ESTADO: " + estado); // RECIBIDO
        }
Esempio n. 26
0
        //REALIZAR PROCESO-------------------------------------
        protected void NewAjust(Object Sender, EventArgs E)
        {
            if (chkCerrarO.Checked == true)
            {
                Totales();
            }
            btnAjus.Enabled = false;
            int       diasP = 0; //Dias plazo
            double    vFlet, vIVAFlet, total, vDescuento, vIVA, vExternos;
            DateTime  fechaProceso;
            string    vend, codigoAlmacen, ccos, carg, prefE, ano_cinv, tipoE;
            UInt64    numPre;
            ArrayList sqlStrings;

            #region Validaciones
            try{ numPre = Convert.ToUInt32(txtNumFacE.Text); }
            catch { Utils.MostrarAlerta(Response, "El número de entrada de almacén no es valido!"); BindDatas(); return; }

            try{ diasP = Convert.ToInt32(txtPlazo.Text); }
            catch { Utils.MostrarAlerta(Response, "Los días de plazo no son válidos!"); BindDatas(); return; }

            try
            {
                vDescuento = Convert.ToDouble(txtDesc.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "El valor de los descuentos no es válido!");
                return;
            }

            try
            {
                vExternos = Convert.ToDouble(txtTotalExternos.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "El valor de los totales externos no es valido!");
                return;
            }

            try
            {
                vFlet = Convert.ToDouble(txtFlet.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "El valor de los fletes no es valido!");
                return;
            }
            try
            {
                vIVAFlet = Convert.ToDouble(txtTotIF.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "El valor IVA de los fletes no es valido!");
                return;
            }
            try
            {
                vIVA = Convert.ToDouble(txtIVA.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "El valor del IVA no es valido!");
                return;
            }
            try
            {
                fechaProceso = Convert.ToDateTime(tbDate.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "Fecha de proceso no es valido!");
                return;
            }
            try
            {
                total = Convert.ToDouble(txtTotal.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "El valor del total no es valido!");
                return;
            }
            if (vExternos < vDescuento)
            {
                Utils.MostrarAlerta(Response, "Los descuentos no pueden superar los valores externos!");
                return;
            }
            //Validar total
            if (Math.Abs((vExternos - vDescuento + vIVA + vFlet + vIVAFlet) - (total)) > 0.009)
            {
                Utils.MostrarAlerta(Response, "El valor del total no coincide!");
                BindDatas();
                return;
            }
            #endregion Validaciones

            //Aqui Iniciamos el proceso como tal, habiendo superado con exito el proceso de validacion
            vend          = ddlVendedor.SelectedValue;   //Codigo del Vendedor
            codigoAlmacen = ddlAlmacen.SelectedValue;
            ccos          = DBFunctions.SingleData("SELECT pcen_centinv FROM palmacen WHERE palm_almacen='" + codigoAlmacen + "'");
            carg          = DBFunctions.SingleData("SELECT TVEND_CODIGO FROM PVENDEDOR WHERE PVEN_CODIGO='" + vend + "'"); //Cargo???????
            prefE         = "";                                                                                            //Prefijo Documento Interno (PDOCUMENTO)
            numPre        = 0;                                                                                             //Numero de Documento Interno (PDOCUMENTO)
            ano_cinv      = ConfiguracionInventario.Ano;
            tipoE         = DBFunctions.SingleData("SELECT MORD_TIPO FROM MORDENPRODUCCION WHERE PDOC_CODIGO='" + ddlPrefOrden.SelectedValue + "' AND MORD_NUMEORDE=" + ddlNumOrden.SelectedValue + ";");
            sqlStrings    = new ArrayList();

            #region Factura Proveedor
            ArrayList        arrRecepciones          = new ArrayList();
            FacturaProveedor facturaRepuestos        = new FacturaProveedor();
            string           prefijoFacturaProveedor = ddlPrefE.SelectedValue;
            UInt64           numeroFacturaProveedor  = Convert.ToUInt64(txtNumFacE.Text.Trim());
            prefE  = prefijoFacturaProveedor;
            numPre = numeroFacturaProveedor;

            if (DBFunctions.RecordExist("SELECT * FROM mfacturaproveedor WHERE pdoc_codiordepago='" + prefijoFacturaProveedor + "' AND mfac_numeordepago=" + numeroFacturaProveedor + ""))
            {
                numeroFacturaProveedor = Convert.ToUInt32(DBFunctions.SingleData("SELECT pdoc_ultidocu+1 FROM pdocumento WHERE pdoc_codigo='" + prefijoFacturaProveedor + "'"));
            }

            FacturaProveedor facturaRepuestosProv    = new FacturaProveedor("FPR", prefijoFacturaProveedor,
                                                                            ddlPrefOrden.SelectedValue, txtNIT.Text.Trim(), ddlAlmacen.SelectedValue, "F", numeroFacturaProveedor,
                                                                            Convert.ToUInt64(ddlNumOrden.SelectedValue), "P", fechaProceso,
                                                                            fechaProceso.AddDays(Convert.ToDouble(txtPlazo.Text.Trim())),
                                                                            Convert.ToDateTime(null), fechaProceso, vExternos - vDescuento,
                                                                            vIVA, vFlet, vIVAFlet, 0, txtObs.Text,
                                                                            HttpContext.Current.User.Identity.Name.ToLower());

            facturaRepuestosProv.GrabarFacturaProveedor(false);
            numPre = facturaRepuestosProv.NumeroFactura;

            for (int i = 0; i < facturaRepuestosProv.SqlStrings.Count; i++)
            {
                sqlStrings.Add(facturaRepuestosProv.SqlStrings[i].ToString());
            }
            #endregion Factura Proveedor

            #region Retenciones
            DataTable dtRet = TablaRetenciones();
            dtRet.Rows[0][0]  = "1";
            dtRet.Rows[0][1]  = DBFunctions.SingleData("SELECT MITE_CODIGO FROM MITEMS WHERE TORI_CODIGO='X' FETCH FIRST 1 ROWS ONLY;");
            dtRet.Rows[0][2]  = "";
            dtRet.Rows[0][3]  = 1;
            dtRet.Rows[0][4]  = 1;
            dtRet.Rows[0][5]  = vExternos;
            dtRet.Rows[0][6]  = vDescuento;
            dtRet.Rows[0][7]  = (vIVA * 100) / vExternos;
            dtRet.Rows[0][8]  = "";
            dtRet.Rows[0][9]  = total;
            dtRet.Rows[0][10] = "";
            dtRet.Rows[0][11] = "";
            try
            {
                Retencion RetencionItems = new Retencion(facturaRepuestosProv.NitProveedor,
                                                         facturaRepuestosProv.PrefijoFactura,
                                                         Convert.ToInt32(facturaRepuestosProv.NumeroFactura),
                                                         dtRet,
                                                         (facturaRepuestosProv.ValorFactura + facturaRepuestosProv.ValorFletes),
                                                         (facturaRepuestosProv.ValorIva + facturaRepuestosProv.ValorIvaFletes),
                                                         "R", false);

                RetencionItems.Guardar_Retenciones(false);

                for (int i = 0; i < RetencionItems.Sqls.Count; i++)
                {
                    sqlStrings.Add(RetencionItems.Sqls[i].ToString());
                }
            }
            catch (Exception ex)
            {
                Utils.MostrarAlerta(Response, "Error en Retenciones. Detalles : \\n" + ex.Message + "");
                return;
            }
            #endregion

            #region Movimiento de Kardex
            string ano_cont = ConfiguracionInventario.Ano;

            int tm = 20;            //Entradas de proveedor
            //Creamos el Objeto manejador de movimientos de kardex utilizando el constructor #2
            Movimiento Mov = new Movimiento(prefE, numPre, tm, fechaProceso, txtNIT.Text, codigoAlmacen, vend, carg, ccos, "N");

            double cant, valU, costP, costPH, costPA, costPHA, invI, invIA, pIVA, pDesc, cantDev, valP;

            ArrayList Prrs    = new ArrayList();         //Prerecepciones de la lista
            DataTable dtItems = (DataTable)ViewState["ITEMS"];
            //DITEMS
            for (int n = 0; n < dtItems.Rows.Count; n++)
            {
                string codI = dtItems.Rows[n]["CODIGO"].ToString();
                string prefijoDocumentoReferencia = "";
                UInt64 numeroDocumentoReferencia  = 0;
                prefijoDocumentoReferencia = ddlPrefOrden.SelectedValue;                  // prefijo Orden
                numeroDocumentoReferencia  = Convert.ToUInt32(ddlNumOrden.SelectedValue); // Numero Orden
                cant    = Convert.ToDouble(dtItems.Rows[n]["CANTIDAD"]);                  //cantidad ingresada
                valU    = Convert.ToDouble(dtItems.Rows[n]["VALOR"]);                     //(Costeo)
                pIVA    = 0;                                                              //iva
                pDesc   = 0;                                                              //descuento
                costP   = SaldoItem.ObtenerCostoPromedio(codI, ano_cont);
                costPH  = SaldoItem.ObtenerCostoPromedioHistorico(codI, ano_cont);
                costPA  = SaldoItem.ObtenerCostoPromedioAlmacen(codI, ano_cont, codigoAlmacen);
                costPHA = SaldoItem.ObtenerCostoPromedioHistoricoAlmacen(codI, ano_cont, codigoAlmacen);
                invI    = SaldoItem.ObtenerCantidadActual(codI, ano_cont);                       //Inventario inicial
                invIA   = SaldoItem.ObtenerCantidadActualAlmacen(codI, ano_cont, codigoAlmacen); //Inventario inicial Almacen
                cantDev = 0;                                                                     //devolucion
                valP    = costP;                                                                 //Valor publico
                Mov.InsertaFila(codI, cant, valU, costP, costPA, pIVA, pDesc, cantDev, costPH, costPHA, valP, invI, invIA, prefijoDocumentoReferencia, numeroDocumentoReferencia);
                //				0	  1		2	3		4	 5		6		7	  8		9	   10	11	  12			13							14
            }

            Mov.RealizarMov(false);
            for (int i = 0; i < Mov.SqlStrings.Count; i++)
            {
                sqlStrings.Add(Mov.SqlStrings[i].ToString());
            }
            #endregion

            #region Actualizar detalle y orden produccion
            //Actualizar cantidad entregada
            for (int n = 0; n < dtItems.Rows.Count; n++)
            {
                sqlStrings.Add(
                    "UPDATE DORDENPRODUCCION SET " +
                    "DORD_CANTENTR=DORD_CANTENTR+" + dtItems.Rows[n]["CANTIDAD"] + " " +
                    "WHERE PDOC_CODIGO='" + ddlPrefOrden.SelectedValue + "' AND " +
                    "MORD_NUMEORDE=" + ddlNumOrden.SelectedValue + " AND " +
                    "PENS_CODIGO='" + dtItems.Rows[n]["ENSAMBLE"] + "' AND " +
                    "MITE_CODIGO='" + dtItems.Rows[n]["CODIGO"] + "';");
            }

            //cerrar mordenproduccion si se recibieron todos los items
            sqlStrings.Add(
                "UPDATE MORDENPRODUCCION MO SET MO.TEST_ESTADO='F' " +
                "WHERE MO.pdoc_codigo='" + ddlPrefOrden.SelectedValue + "' AND mord_numeorde=" + ddlNumOrden.SelectedValue + " AND " +
                "NOT EXISTS(" +
                " SELECT * FROM DORDENPRODUCCION DOR " +
                " WHERE " +
                " DOR.pdoc_codigo=MO.pdoc_codigo AND DOR.mord_numeorde=MO.mord_numeorde AND " +
                " DOR.DORD_CANTXPROD>DORD_CANTENTR " +
                ");");
            #endregion

            #region Costeo
            //Costeo
            sqlStrings.Add("INSERT INTO dcostoproduccion values(" +
                           "'" + ddlPrefE.SelectedValue + "'," + numPre + "," +
                           Convert.ToDouble(ViewState["TOT_MATPRIMA"]).ToString() + "," +
                           Convert.ToDouble(ViewState["TOT_TERCEROS"]).ToString() + "," +
                           Convert.ToDouble(ViewState["TOT_MANOBRA"]).ToString() + "," +
                           Convert.ToDouble(ViewState["TOT_CIF"]).ToString() + "," +
                           Convert.ToDouble(ViewState["TOT_MAQUINARIA"]).ToString() + "," +
                           "'" + ViewState["MITE_CODIGO"].ToString() + "'" +
                           ");");
            #endregion Costeo

            //Cerrar orden de producción
            if (chkCerrarO.Checked == true)
            {
                string sql = CerrarOrdenProduccion();
                if (sql != "")
                {
                    sqlStrings.Add(sql);
                }
                else
                {
                    Utils.MostrarAlerta(Response, "Se presentó un error al intentar cerrar la orden de ooperación!");
                    return;
                }
            }

            if (chkCerrarO.Checked == false)
            {
                if (DBFunctions.Transaction(sqlStrings))
                {
                    Response.Redirect("" + indexPage + "?process=Produccion.EntradasProduccion&path=" + Request.QueryString["path"] + "&pref=" + prefijoFacturaProveedor + "&num=" + numeroFacturaProveedor);
                }
                else
                {
                    lbInfo.Text += "<br>Error : Detalles <br>" + DBFunctions.exceptions;
                }
            }
            else
            {
                if (DBFunctions.Transaction(sqlStrings) && RealizarAjusteInventario())
                {
                    Response.Redirect("" + indexPage + "?process=Produccion.EntradasProduccion&path=" + Request.QueryString["path"] + "&pref=" + prefijoFacturaProveedor + "&num=" + numeroFacturaProveedor + "&act=1&prefA=" + ddlPrefijoAjuste.SelectedValue + "&numA=" + lblNumeroAjuste.Text);
                }
                else
                {
                    lbInfo.Text += "<br>Error : Detalles <br>" + DBFunctions.exceptions;
                }
            }
        }
Esempio n. 27
0
        //factura por vehículo(Facturación Excel)
        public bool Realizar_Recepcion_Excel(bool factura, bool grabar)
        {
            sqlStrings = new ArrayList();

            bool status = false;
            int  i;
            //Se cambia por el primer NIT del proceso.
            String nitSeleccionado = nitProveedor2;

            if (nitProveedor2 == "" || nitProveedor2 == null)
            {
                nitSeleccionado = nitProveedor;
            }
            if (factura)
            {
                FacturaProveedor facturaRepuestos = new FacturaProveedor("FPR", prefijoOrdenPago, prefijoFacturaProveedor, nitProveedor, Almacen, "F", Convert.ToUInt64(numeroOrdenPago), Convert.ToUInt64(numeroFacturaProveedor),
                                                                         //0			1					2						3			4		5		6										7
                                                                         estadoFacturaProveedor, Convert.ToDateTime(fechaFactura), Convert.ToDateTime(fechaVencimiento), Convert.ToDateTime(null), Convert.ToDateTime(fechaIngreso),
                                                                         //8									9											10							11
                                                                         Convert.ToDouble(valorFactura), Convert.ToDouble(valorIva), Convert.ToDouble(valorFletes), Convert.ToDouble(valorIvaFletes), Convert.ToDouble(valorRetencion),
                                                                         //12								13								14							15								16
                                                                         observacion, usuario);
                //17		    18
                if (valorAbono != null && valorAbono != "")
                {
                    facturaRepuestos.ValorAbonos = Convert.ToDouble(valorAbono);
                }
                facturaRepuestos.GrabarFacturaProveedorExcel(false);
                numeroOrdenPago = facturaRepuestos.NumeroFactura.ToString();
                for (i = 0; i < facturaRepuestos.SqlStrings.Count; i++)
                {
                    sqlStrings.Add(facturaRepuestos.SqlStrings[i].ToString());
                }
                //Cálculo de retenciones

                RetencionVehiculos = new Retencion(nitProveedor2, facturaRepuestos.PrefijoFactura,
                                                   Convert.ToInt32(facturaRepuestos.NumeroFactura), (Convert.ToDouble(valorFactura) + Convert.ToDouble(valorFletes)),
                                                   (Convert.ToDouble(valorIva) + Convert.ToDouble(valorIvaFletes)), "V", false);
                //if (dtRetenciones == null)
                RetencionVehiculos.Guardar_Retenciones(false);
            }
            if (!DBFunctions.RecordExist("SELECT * FROM mcatalogovehiculo WHERE mcat_vin='" + drInformacionTecnica[1] + "' "))
            {
                sqlStrings.Add("INSERT INTO mcatalogovehiculo VALUES('" + drInformacionTecnica[0] + "','" + drInformacionTecnica[1] + "','" + drInformacionTecnica[8] + "','" + drInformacionTecnica[2] + "','" + DBFunctions.SingleData("SELECT mnit_nit FROM cempresa") + "','" + drInformacionTecnica[3] + "','" + drInformacionTecnica[4] + "','" + drInformacionTecnica[5] + "'," + drInformacionTecnica[6] + ",'" + drInformacionTecnica[7] + "',null,null,'" + DateTime.Now.ToString("yyyy-MM-dd") + "',0,null,0,1000,null,null,'" + DateTime.Now.ToString("yyyy-MM-dd") + "',null)");
            }

            //Ahora Agregamos EL REGISTRO A MVEHICULO
            string nitPropietario = DBFunctions.SingleData("SELECT mnit_nit FROM cempresa");

            //string i = drInformacionComercial[1];
            if (drInformacionComercial[13].ToString() != "P")
            {
                nitPropietario = nitProveedor;  // En las Consignaciones o Retomas de Vehiculos, se deja el nit del proveedor como propietario
            }
            if (factura)
            {
                sqlStrings.Add("INSERT INTO mvehiculo (MVEH_INVENTARIO,PVEN_MERCADEISTA,MCAT_VIN,TEST_TIPOESTA,PDOC_CODIGOPEDIPROV,MPED_NUMERO,MNIT_NIT,MVEH_NUMERECE,MVEH_FECHRECE,MVEH_FECHDISP,MVEH_KILOMETR,TCLA_CODIGO,MVEH_NUMEMANI,MVEH_FECHMANI,MVEH_ADUANA,MVEH_NUMED_O,MVEH_NUMELEVANTE,MVEH_VALOGAST,MVEH_VALOINFL,TCOM_CODIGO,PDOC_CODIORDEPAGO,MFAC_NUMEORDEPAGO,MVEH_VALOCOMP,MVEH_FECHENTR,MPRO_NIT,MVEH_PRENDA,MVEH_VALOIVA) VALUES("
                               + drInformacionComercial[0] + ",null,'" + drInformacionComercial[2] + "',20,'null',null,'" + nitPropietario + "'," + drInformacionComercial[3] + ",'" + drInformacionTecnica[9] + "','" + drInformacionComercial[5] + "'," + drInformacionComercial[6] + ",'" + drInformacionComercial[7] + "','" + drInformacionComercial[8] + "','" + drInformacionComercial[9] + "','" + drInformacionComercial[10] + "','" + drInformacionComercial[11] + "','" + drInformacionComercial[12] + "',0,0,'" + drInformacionComercial[13] + "','" + prefijoOrdenPago + "'," + numeroOrdenPago + "," + drInformacionComercial[14] + ",null,'" + nitSeleccionado + "',null," + valorIva + ")");

                //sqlStrings.Add("INSERT INTO mvehiculo VALUES(" + tbInformacionComercial.Rows[i][0].ToString() + ",null,'" + tbInformacionComercial.Rows[i][2].ToString() + "',20,'" + prefijoPedido + "'," + numeroPedido + ",'" + nitPropietario + "'," + tbInformacionComercial.Rows[i][3].ToString() + ",'" + tbInformacionComercial.Rows[i][4].ToString() + "','" + tbInformacionComercial.Rows[i][5].ToString() + "'," + tbInformacionComercial.Rows[i][6].ToString() + ",'" + tbInformacionComercial.Rows[i][7].ToString() + "','" + tbInformacionComercial.Rows[i][8].ToString() + "','" + tbInformacionComercial.Rows[i][9].ToString() + "','" + tbInformacionComercial.Rows[i][10].ToString() + "','" + tbInformacionComercial.Rows[i][11].ToString() + "','" + tbInformacionComercial.Rows[i][12].ToString() + "',0,0,'" + tbInformacionComercial.Rows[i][13].ToString() + "','" + prefijoOrdenPago + "'," + numeroOrdenPago + "," + tbInformacionComercial.Rows[i][14].ToString() + ",null,'" + nitProveedor + "',null," + valorIva + ")");
                sqlStrings.Add("UPDATE dpedidovehiculoproveedor SET dped_cantingr = dped_cantingr + 1 WHERE pdoc_codigo='" + this.prefijoPedido + "' AND mped_numepedi=" + this.numeroPedido + " AND pcat_codigo='" + drInformacionComercial[1] + "'");

                //Ahora creamos el registro en la tabla mubicacionvehiculo
                sqlStrings.Add("INSERT INTO mubicacionvehiculo VALUES(default,'" + drInformacionComercial[1] + "','" + drInformacionComercial[2] + "','" + this.ubicacion + "','" + DateTime.Now.ToString("yyyy-MM-dd") + "',null,null,null,null)");
            }

            for (i = 0; i < sqlRels.Count; i++)
            {
                sqlStrings.Add(sqlRels[i].ToString());
            }
            if (grabar)
            {
                if (DBFunctions.Transaction(sqlStrings))
                {
                    status      = true;
                    processMsg += DBFunctions.exceptions + "<br>";
                }
                else
                {
                    processMsg += "Error" + DBFunctions.exceptions + "<br><br>";
                }
            }
            else
            {
                status = true;
            }
            return(status);
        }
Esempio n. 28
0
        public void Ejecutar(object sender, System.EventArgs e)
        {
            uint      ndrefE = 0;     //Numero Factura - Numero Factura Entrada
            DateTime  fechaProceso;
            string    vend, codigoAlmacen, ccos, carg, prefE, ano_cinv, tipoE;
            UInt64    numPre;
            ArrayList sqlStrings = new ArrayList();
            string    nit, ciudad;
            int       anoV;
            UInt32    cVIN;

            #region Validaciones
            try{
                anoV = Convert.ToInt16(txtAno.Text);
                if (Math.Abs(DateTime.Now.Year - anoV) > 5)
                {
                    throw(new Exception());
                }
            }
            catch {
                Utils.MostrarAlerta(Response, "Año no válido.");
                return;
            }
            if (dtEnsambles.Rows.Count == 0)
            {
                Utils.MostrarAlerta(Response, "No hay ensambles seleccionados.");
                return;
            }
            try{ ndrefE = Convert.ToUInt32(txtNumFacE.Text); }
            catch { Utils.MostrarAlerta(Response, "El número de entrada de almacén no es valido!"); return; }
            Utils.MostrarAlerta(Response, "El número de entrada de almacén no es valido!");
            try{
                fechaProceso = Convert.ToDateTime(tbDate.Text);
            }
            catch {
                Utils.MostrarAlerta(Response, "Fecha de proceso no es valido!");
                return;
            }
            #endregion Validaciones

            //Aqui Iniciamos el proceso como tal, habiendo superado con exito el proceso de validacion
            nit           = DBFunctions.SingleData("SELECT MNIT_NIT FROM CEMPRESA;");
            ciudad        = DBFunctions.SingleData("SELECT CEMP_CIUDAD FROM CEMPRESA;");
            vend          = ddlVendedor.SelectedValue;   //Codigo del Vendedor
            codigoAlmacen = ddlAlmacen.SelectedValue;
            ccos          = DBFunctions.SingleData("SELECT pcen_centinv FROM palmacen WHERE palm_almacen='" + codigoAlmacen + "'");
            carg          = DBFunctions.SingleData("SELECT TVEND_CODIGO FROM PVENDEDOR WHERE PVEN_CODIGO='" + vend + "'"); //Cargo???????
            prefE         = "";                                                                                            //Prefijo Documento Interno (PDOCUMENTO)
            numPre        = 0;                                                                                             //Numero de Documento Interno (PDOCUMENTO)
            ano_cinv      = ConfiguracionInventario.Ano;
            tipoE         = DBFunctions.SingleData("SELECT MORD_TIPO FROM MORDENPRODUCCION WHERE PDOC_CODIGO='" + ddlPrefOrden.SelectedValue + "' AND MORD_NUMEORDE=" + ddlNumOrden.SelectedValue + ";");
            sqlStrings    = new ArrayList();

            #region Factura Proveedor
            ArrayList        arrRecepciones          = new ArrayList();
            FacturaProveedor facturaRepuestos        = new FacturaProveedor();
            string           prefijoFacturaProveedor = ddlPrefE.SelectedValue;
            UInt64           numeroFacturaProveedor  = Convert.ToUInt64(txtNumFacE.Text.Trim());
            prefE  = prefijoFacturaProveedor;
            numPre = numeroFacturaProveedor;

            if (DBFunctions.RecordExist("SELECT * FROM mfacturaproveedor WHERE pdoc_codiordepago='" + prefijoFacturaProveedor + "' AND mfac_numeordepago=" + numeroFacturaProveedor + ""))
            {
                numeroFacturaProveedor = Convert.ToUInt32(DBFunctions.SingleData("SELECT pdoc_ultidocu+1 FROM pdocumento WHERE pdoc_codigo='" + prefijoFacturaProveedor + "'"));
            }

            FacturaProveedor facturaRepuestosProv = new FacturaProveedor("FPR", prefijoFacturaProveedor,
                                                                         ddlPrefOrden.SelectedValue, nit, ddlAlmacen.SelectedValue, "F", numeroFacturaProveedor,
                                                                         Convert.ToUInt64(ddlNumOrden.SelectedValue), "V", fechaProceso,
                                                                         fechaProceso.AddDays(0),
                                                                         Convert.ToDateTime(null), fechaProceso, 0,
                                                                         0, 0, 0, 0, txtObs.Text,
                                                                         HttpContext.Current.User.Identity.Name.ToLower());

            facturaRepuestosProv.GrabarFacturaProveedor(false);
            numPre = facturaRepuestosProv.NumeroFactura;

            for (int i = 0; i < facturaRepuestosProv.SqlStrings.Count; i++)
            {
                sqlStrings.Add(facturaRepuestosProv.SqlStrings[i].ToString());
            }
            #endregion Factura Proveedor

            #region Retenciones
            DataTable dtRet = TablaRetenciones();
            dtRet.Rows[0][0]  = "1";
            dtRet.Rows[0][1]  = DBFunctions.SingleData("SELECT MITE_CODIGO FROM MITEMS WHERE TORI_CODIGO='X' FETCH FIRST 1 ROWS ONLY;");
            dtRet.Rows[0][2]  = "";
            dtRet.Rows[0][3]  = 1;
            dtRet.Rows[0][4]  = 1;
            dtRet.Rows[0][5]  = 0;
            dtRet.Rows[0][6]  = 0;
            dtRet.Rows[0][7]  = 0;
            dtRet.Rows[0][8]  = "";
            dtRet.Rows[0][9]  = 0;
            dtRet.Rows[0][10] = "";
            dtRet.Rows[0][11] = "";
            try
            {
                Retencion RetencionItems = new Retencion(facturaRepuestosProv.NitProveedor,
                                                         facturaRepuestosProv.PrefijoFactura,
                                                         Convert.ToInt32(facturaRepuestosProv.NumeroFactura),
                                                         dtRet,
                                                         (facturaRepuestosProv.ValorFactura + facturaRepuestosProv.ValorFletes),
                                                         (facturaRepuestosProv.ValorIva + facturaRepuestosProv.ValorIvaFletes),
                                                         "R", false);

                RetencionItems.Guardar_Retenciones(false);

                for (int i = 0; i < RetencionItems.Sqls.Count; i++)
                {
                    sqlStrings.Add(RetencionItems.Sqls[i].ToString());
                }
            }
            catch (Exception ex)
            {
                Utils.MostrarAlerta(Response, "Error en Retenciones. Detalles : \\n" + ex.Message + "");
                return;
            }
            #endregion

            #region Vehiculos, catalogos, detalles ordenes, pcatalogovehiculo
            bool vehiculos = false;
            for (int n = 0; n < dtEnsambles.Rows.Count; n++)
            {
                if (((CheckBox)dgEnsambles.Items[n].FindControl("chkUsarE")).Checked)
                {
                    cVIN = Convert.ToUInt32(dtEnsambles.Rows[n]["MCAT_VIN"].ToString().Substring(12));

                    //Insertar mcatalogovehiculo
                    sqlStrings.Add("INSERT INTO MCATALOGOVEHICULO VALUES (" +
                                   "'" + dtEnsambles.Rows[n]["PCAT_CODIGO"].ToString() + "'," +            //Catalogo
                                   "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," +               //VIN
                                   "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString().Substring(12) + "'," + //placa
                                   "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," +               //Motor
                                   "'" + nit + "'," +                                                      //NIT
                                   "NULL," +
                                   "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," +               //Chasis
                                   "'" + dtEnsambles.Rows[n]["PCOL_CODIGO"].ToString() + "'," +            //Color
                                   anoV + ",'A',NULL,NULL,'" + tbDate.Text + "',0,NULL,0,0,NULL,NULL,'" + tbDate.Text + "',null)");

                    //Insertar mvehiculo
                    sqlStrings.Add("INSERT INTO MVEHICULO VALUES (" +
                                   "DEFAULT," +                                              //Inventario
                                   "NULL," +                                                 //Catalogo
                                   "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," + //VIN
                                   "1," +                                                    //Estado
                                   "NULL,NULL," +                                            //Pedido
                                   "'" + nit + "'," +                                        //NIT
                                   "0," +                                                    //No recepcion
                                   "'" + tbDate.Text + "'," +                                //Fecha Recep
                                   "'" + tbDate.Text + "'," +                                //Fecha Disponb.
                                   "0," +                                                    //Kilometraje
                                   "'N'," +                                                  //Nuevo
                                   "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," + //Manifiesto
                                   "'" + tbDate.Text + "'," +                                //Fecha Manifiesto
                                   "'" + ciudad + "'," +                                     //Aduana
                                   "NULL," +                                                 //Version
                                   "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," + //No Levante
                                   "NULL,NULL," +                                            //Vr Gastos, Inflacion
                                   "'P'," +                                                  //Tipo de compra
                                   "NULL,NULL," +                                            //Orden de pago
                                   "0," +                                                    //Valor compra a proveedor
                                   "NULL," +                                                 //Fecha entrega
                                   "'" + nit + "'," +                                        //NIT Proveedor
                                   "NULL,NULL" +                                             //Prenda,IVA
                                   ");");

                    //Actualizar pcatalogovehiculo
                    sqlStrings.Add("update pcatalogovehiculo " +
                                   "set pcat_consecutivo=" + cVIN + " " +
                                   "WHERE PCAT_CODIGO='" + dtEnsambles.Rows[n]["PCAT_CODIGO"].ToString() + "' AND pcat_consecutivo<" + cVIN + ";");

                    //Actualizar dordenproduccion
                    sqlStrings.Add("UPDATE DORDENPRODUCCION SET " +
                                   "DORD_CANTENTR=DORD_CANTENTR+1 " +
                                   "WHERE PDOC_CODIGO='" + ddlPrefOrden.SelectedValue + "' AND " +
                                   "MORD_NUMEORDE=" + ddlNumOrden.SelectedValue + " AND " +
                                   "PCAT_CODIGO='" + dtEnsambles.Rows[n]["PCAT_CODIGO"] + "';");
                    vehiculos = true;
                }
            }
            if (!vehiculos)
            {
                Utils.MostrarAlerta(Response, "No seleccionó ningún elemento.");
                return;
            }
            #endregion

            #region Orden Produccion
            //cerrar mordenproduccion si se recibieron todos los items
            sqlStrings.Add(
                "UPDATE MORDENPRODUCCION MO SET MO.TEST_ESTADO='F' " +
                "WHERE MO.pdoc_codigo='" + ddlPrefOrden.SelectedValue + "' AND mord_numeorde=" + ddlNumOrden.SelectedValue + " AND " +
                "NOT EXISTS(" +
                " SELECT * FROM DORDENPRODUCCION DOR " +
                " WHERE " +
                " DOR.pdoc_codigo=MO.pdoc_codigo AND DOR.mord_numeorde=MO.mord_numeorde AND " +
                " DOR.DORD_CANTXPROD>DORD_CANTENTR " +
                ");");
            #endregion

            if (DBFunctions.Transaction(sqlStrings))
            {
                Response.Redirect("" + indexPage + "?process=Produccion.EntradasEnsambles&path=" + Request.QueryString["path"] + "&pref=" + prefijoFacturaProveedor + "&num=" + numeroFacturaProveedor);
            }
            else
            {
                lbInfo.Text += "<br>Error : Detalles <br>" + DBFunctions.exceptions;
            }
        }