Ejemplo n.º 1
0
        public Boolean guardarDB(cp_retencion_Info info)
        {
            Boolean res = true;
            tb_sis_Documento_Tipo_Talonario_Data odata_talonario = new tb_sis_Documento_Tipo_Talonario_Data();
            var info_documento = odata_talonario.GetUltimoNoUsadoFacElec(info.IdEmpresa, cl_enumeradores.eTipoDocumento.RETEN.ToString(), info.serie1, info.serie2);

            try
            {
                using (Entities_cuentas_por_pagar Context = new Entities_cuentas_por_pagar())
                {
                    var lstf = Context.cp_retencion.Where(q => q.IdEmpresa_Ogiro == info.IdEmpresa && q.IdTipoCbte_Ogiro == info.IdTipoCbte_Ogiro && q.IdCbteCble_Ogiro == info.IdCbteCble_Ogiro).FirstOrDefault();
                    if (lstf != null)
                    {
                        return(false);
                    }

                    Context.cp_retencion.Add(new cp_retencion
                    {
                        IdEmpresa        = info.IdEmpresa,
                        IdEmpresa_Ogiro  = info.IdEmpresa_Ogiro,
                        IdCbteCble_Ogiro = info.IdCbteCble_Ogiro,
                        IdTipoCbte_Ogiro = info.IdTipoCbte_Ogiro,
                        IdRetencion      = info.IdRetencion = get_id(info.IdEmpresa),
                        CodDocumentoTipo = info.CodDocumentoTipo,
                        serie1           = info.serie1 = info_documento.Establecimiento,
                        serie2           = info.serie2 = info_documento.PuntoEmision,
                        NumRetencion     = info.NumRetencion = info_documento.NumDocumento,
                        NAutorizacion    = info.NAutorizacion,
                        observacion      = info.observacion,
                        fecha            = info.fecha.Date,
                        re_Tiene_RTiva   = info.re_Tiene_RTiva,
                        re_Tiene_RFuente = info.re_Tiene_RFuente,
                        re_EstaImpresa   = info.re_EstaImpresa,
                        Estado           = "A",
                        Fecha_Transac    = DateTime.Now,
                        IdUsuario        = info.IdUsuario,
                    });

                    int Secuencia = 1;
                    foreach (var item in info.detalle)
                    {
                        Context.cp_retencion_det.Add(new cp_retencion_det
                        {
                            IdEmpresa           = info.IdEmpresa,
                            IdRetencion         = info.IdRetencion,
                            Idsecuencia         = Secuencia++,
                            re_tipoRet          = item.re_tipoRet,
                            re_Codigo_impuesto  = item.re_Codigo_impuesto,
                            re_baseRetencion    = (double)item.re_baseRetencion,
                            re_Porcen_retencion = (double)item.re_Porcen_retencion,
                            re_valor_retencion  = (double)item.re_valor_retencion,
                            IdCodigo_SRI        = item.IdCodigo_SRI,
                            IdUsuario           = info.IdUsuario,
                            re_estado           = "A"
                        });
                    }
                    Context.SaveChanges();

                    if (Math.Round((double)info.detalle.Sum(q => q.re_valor_retencion), 2) > 0.01)
                    {
                        ct_cbtecble_Data odata_ct = new ct_cbtecble_Data();
                        var param  = Context.cp_parametros.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault();
                        var diario = odata_ct.armar_info(info.info_comprobante.lst_ct_cbtecble_det, info.IdEmpresa, info.IdSucursal, (int)param.pa_IdTipoCbte_x_Retencion, 0,
                                                         "Comprobante contable de retención #" + info.serie1 + " " + info.serie2 + " " + info.NumRetencion
                                                         , info.fecha);
                        odata_ct.guardarDB(diario);

                        Context.cp_retencion_x_ct_cbtecble.Add(new cp_retencion_x_ct_cbtecble
                        {
                            rt_IdEmpresa   = info.IdEmpresa,
                            rt_IdRetencion = info.IdRetencion,

                            ct_IdEmpresa  = diario.IdEmpresa,
                            ct_IdTipoCbte = diario.IdTipoCbte,
                            ct_IdCbteCble = diario.IdCbteCble,
                            Observacion   = "Relacion"
                        });
                        Context.SaveChanges();
                    }
                }

                return(res);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 2
0
        public bool modificarDB(cp_retencion_Info info)
        {
            try
            {
                int sec = 1;
                using (Entities_cuentas_por_pagar Context = new Entities_cuentas_por_pagar())
                {
                    var contact = Context.cp_retencion.FirstOrDefault(minfo => minfo.IdEmpresa == info.IdEmpresa && minfo.IdRetencion == info.IdRetencion);
                    if (contact != null)
                    {
                        if (string.IsNullOrEmpty(contact.NumRetencion))
                        {
                            tb_sis_Documento_Tipo_Talonario_Data odata_talonario = new tb_sis_Documento_Tipo_Talonario_Data();
                            var info_documento = odata_talonario.GetUltimoNoUsadoFacElec(info.IdEmpresa, cl_enumeradores.eTipoDocumento.RETEN.ToString(), info.serie1, info.serie2);
                            contact.serie1       = info.serie1 = info_documento.Establecimiento;
                            contact.serie2       = info.serie2 = info_documento.PuntoEmision;
                            contact.NumRetencion = info.NumRetencion = info_documento.NumDocumento;
                        }

                        contact.fecha           = info.fecha;
                        contact.observacion     = info.observacion;
                        contact.IdUsuarioUltMod = info.IdUsuarioUltMod;
                        contact.Fecha_UltMod    = info.Fecha_UltMod;
                        contact.ip = info.ip;
                        if (info.detalle != null)
                        {
                            var lista = Context.cp_retencion_det.Where(minfo => minfo.IdEmpresa == info.IdEmpresa && minfo.IdRetencion == info.IdRetencion);
                            Context.cp_retencion_det.RemoveRange(lista);

                            foreach (var item in info.detalle)
                            {
                                cp_retencion_det Entity = new cp_retencion_det
                                {
                                    IdEmpresa           = info.IdEmpresa,
                                    IdRetencion         = info.IdRetencion,
                                    Idsecuencia         = sec,
                                    re_tipoRet          = item.re_tipoRet,
                                    re_baseRetencion    = (double)item.re_baseRetencion,
                                    IdCodigo_SRI        = item.IdCodigo_SRI,
                                    re_Codigo_impuesto  = item.re_Codigo_impuesto,
                                    re_valor_retencion  = Math.Round((double)item.re_valor_retencion, 2, MidpointRounding.AwayFromZero),
                                    re_Porcen_retencion = (double)item.re_Porcen_retencion,
                                    re_estado           = "A"
                                };
                                Context.cp_retencion_det.Add(Entity);
                                sec++;
                            }
                        }
                        Context.SaveChanges();

                        if (Math.Round((double)info.detalle.Sum(q => q.re_valor_retencion), 2) > 0.01)
                        {
                            ct_cbtecble_Data odata_ct = new ct_cbtecble_Data();
                            var param  = Context.cp_parametros.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault();
                            var diario = odata_ct.armar_info(info.info_comprobante.lst_ct_cbtecble_det, info.IdEmpresa, info.IdSucursal, (info.info_comprobante.IdTipoCbte == 0 ? Convert.ToInt32(param.pa_IdTipoCbte_x_Retencion) : info.info_comprobante.IdTipoCbte), 0,
                                                             "Comprobante contable de retención #" + info.serie1 + " " + info.serie2 + " " + info.NumRetencion, info.fecha);
                            if (diario != null)
                            {
                                var rel = Context.cp_retencion_x_ct_cbtecble.Where(q => q.rt_IdEmpresa == info.IdEmpresa && q.rt_IdRetencion == info.IdRetencion).FirstOrDefault();
                                if (rel == null)
                                {
                                    if (odata_ct.guardarDB(diario))
                                    {
                                        Context.cp_retencion_x_ct_cbtecble.Add(new cp_retencion_x_ct_cbtecble
                                        {
                                            rt_IdEmpresa   = info.IdEmpresa,
                                            rt_IdRetencion = info.IdRetencion,

                                            ct_IdEmpresa  = diario.IdEmpresa,
                                            ct_IdTipoCbte = diario.IdTipoCbte,
                                            ct_IdCbteCble = diario.IdCbteCble,
                                            Observacion   = "Relacion"
                                        });
                                        Context.SaveChanges();
                                    }
                                }
                                else
                                {
                                    diario.IdCbteCble = rel.ct_IdCbteCble;
                                    odata_ct.modificarDB(diario);
                                }
                            }
                        }
                    }
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 3
0
        public bool modificarDB(cp_retencion_Info info)
        {
            try
            {
                odata = new cp_retencion_Data();
                info.IdEmpresa_Ogiro  = info.IdEmpresa;
                info.CodDocumentoTipo = "RETEN";
                if (info.re_Tiene_RFuente == null)
                {
                    info.re_Tiene_RFuente = "N";
                }
                if (info.re_Tiene_RTiva == null)
                {
                    info.re_Tiene_RTiva = "N";
                }
                info.re_EstaImpresa                  = "N";
                info.info_comprobante.IdEmpresa      = info.IdEmpresa;
                info.info_comprobante.cb_Fecha       = (DateTime)info.fecha;
                info.info_comprobante.cb_Anio        = info.info_comprobante.cb_Fecha.Year;
                info.info_comprobante.cb_mes         = info.info_comprobante.cb_Fecha.Month;
                info.info_comprobante.cb_Estado      = "A";
                info.info_comprobante.IdPeriodo      = Convert.ToInt32(info.info_comprobante.cb_Fecha.Year.ToString() + info.info_comprobante.cb_Fecha.Month.ToString().PadLeft(2, '0'));
                info.info_comprobante.IdEmpresa      = info.IdEmpresa;
                info.info_comprobante.cb_Observacion = info.observacion;
                if (info.info_comprobante.IdCbteCble != 0)
                {
                    if (bus_comprobante.modificarDB(info.info_comprobante))
                    {
                        if (odata.modificarDB(info))
                        {
                            data_retencion_der.eliminarDB(info.IdEmpresa, info.IdRetencion);
                            data_retencion_der.guardarDB(info);
                            return(true);
                        }
                        else
                        {
                            return(false);
                        }
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    if (bus_comprobante.guardarDB(info.info_comprobante))
                    {
                        info_comp_x_retencion.ct_IdEmpresa   = info.IdEmpresa;
                        info_comp_x_retencion.rt_IdRetencion = info.IdRetencion;
                        info_comp_x_retencion.ct_IdTipoCbte  = info.info_comprobante.IdTipoCbte;
                        info_comp_x_retencion.ct_IdCbteCble  = info.info_comprobante.IdCbteCble;
                        info_comp_x_retencion.Observacion    = info.observacion;
                        data_comp_x_retencion.guardarDB(info_comp_x_retencion);


                        info_talonario.IdEmpresa        = info.IdEmpresa;
                        info_talonario.Establecimiento  = info.serie1;
                        info_talonario.PuntoEmision     = info.serie2;
                        info_talonario.NumDocumento     = info.NumRetencion;
                        info_talonario.Usado            = true;
                        info_talonario.CodDocumentoTipo = "RETEN";
                        data_talonario.modificar_estado_usadoDB(info_talonario);
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 4
0
        public string validar(cp_retencion_Info info)
        {
            try
            {
                string mensaje = "";

                if (!bus_periodo.ValidarFechaTransaccion(info.IdEmpresa, info.fecha, cl_enumeradores.eModulo.CONTA, ref mensaje))
                {
                    return(mensaje);
                }

                if (!bus_periodo.ValidarFechaTransaccion(info.IdEmpresa, info.fecha, cl_enumeradores.eModulo.CXP, ref mensaje))
                {
                    return(mensaje);
                }

                if (info.co_serie == "" | info.co_serie == null)
                {
                    mensaje = "Ingrese la serie del documento";
                    return(mensaje);
                }
                if (info.serie1 == "" | info.serie1 == null)
                {
                    mensaje = "Ingrese serie de la retención";
                    return(mensaje);
                }
                if (info.serie2 == "" | info.serie2 == null)
                {
                    mensaje = "Ingrese serie de la retención";
                    return(mensaje);
                }
                if (info.NumRetencion == "" | info.NumRetencion == null)
                {
                    mensaje = "No existe talonario de retención";
                    return(mensaje);
                }
                if (info.co_factura == "" | info.co_factura == null)
                {
                    mensaje = "Ingrese el número del documento";
                    return(mensaje);
                }

                if (info.info_comprobante.lst_ct_cbtecble_det == null)
                {
                    mensaje = "No existe detalle";
                }
                else
                {
                    info.info_comprobante.lst_ct_cbtecble_det.ForEach(item =>
                    {
                        if (item.IdCtaCble == null | item.IdCtaCble == "")
                        {
                            mensaje = "Falta cuenta contable " + item.dc_Observacion;
                        }
                    });
                }

                double valor = Convert.ToInt32(info.info_comprobante.lst_ct_cbtecble_det.Sum(v => v.dc_Valor));
                if (valor != 0)
                {
                    mensaje = "El diario contable esta descuadrado ";
                }


                return(mensaje);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 5
0
        private iva CargaDatos()
        {
            iva iva = new iva();

            try
            {
                progressBar1.Value = 40;

                cp_codigo_SRI_Bus         dat_ti             = new cp_codigo_SRI_Bus();
                List <cp_codigo_SRI_Info> ListCodigoSRI      = new List <cp_codigo_SRI_Info>();
                List <cp_codigo_SRI_Info> ListCodigoSustento = new List <cp_codigo_SRI_Info>();
                ListCodigoSRI = dat_ti.Get_List_codigo_SRI_(param.IdEmpresa);

                ListCodigoSustento = ListCodigoSRI.FindAll(c => c.co_estado == "A" && c.IdTipoSRI == "COD_IDCREDITO");

                List <cp_TipoDocumento_Info> LstTipDoc = new List <cp_TipoDocumento_Info>();
                cp_TipoDocumento_Bus         TipDoc_B  = new cp_TipoDocumento_Bus();
                LstTipDoc = TipDoc_B.Get_List_TipoDocumento();


                cp_orden_giro_pagos_sri_Bus   formasPago_B   = new cp_orden_giro_pagos_sri_Bus();
                cp_orden_giro_Bus             OGB            = new cp_orden_giro_Bus();
                cp_proveedor_Autorizacion_Bus Autorizacion_B = new cp_proveedor_Autorizacion_Bus();
                cp_proveedor_Bus Proveedor_B = new cp_proveedor_Bus();
                tb_persona_bus   Persona_B   = new tb_persona_bus();

                List <Core.Erp.Info.CuentasxPagar.xmlATS_V_1_1_4.detalleCompras> lstDetalleCompras = new List <Core.Erp.Info.CuentasxPagar.xmlATS_V_1_1_4.detalleCompras>();
                List <cp_orden_giro_Info> listaOG = new List <cp_orden_giro_Info>();
                listaOG = OGB.Get_List_orden_giro_SRI(param.IdEmpresa, Convert.ToInt32(cmb_anio.Text), Convert.ToInt32(cmb_periodo.SelectedValue));



                iva.IdInformante = Empresa_I.em_ruc;
                iva.razonSocial  = Empresa_I.RazonSocial.Replace(".", " ").Replace("ñ", "n").Replace("Ñ", "N");
                iva.Anio         = cmb_anio.Text;
                iva.Mes          = (cmb_periodo.SelectedValue.ToString().Length == 1) ? "0" + cmb_periodo.SelectedValue.ToString() : cmb_periodo.SelectedValue.ToString();

                tb_Sucursal_Bus bus_sucursal       = new tb_Sucursal_Bus();
                int             numEstablecimiento = bus_sucursal.Get_numEstablecimiento_x_empresa_SRI(param.IdEmpresa);
                iva.numEstabRuc = numEstablecimiento.ToString("000");


                iva.TipoIDInformante = ivaTypeTipoIDInformante.R;
                iva.codigoOperativo  = codigoOperativoType.IVA;
                iva.totalVentas      = 0;



                foreach (cp_orden_giro_Info item in listaOG)
                {
                    try
                    {
                        Core.Erp.Info.CuentasxPagar.xmlATS_V_1_1_4.detalleCompras itemDetalleCompras = new Core.Erp.Info.CuentasxPagar.xmlATS_V_1_1_4.detalleCompras();
                        if (item.IdCbteCble_Ogiro == 9)
                        {
                        }
                        info_Retencion_x_RF   = Retencion_B.Get_Info_retencion_X_Retecion_FT(param.IdEmpresa, item.IdCbteCble_Ogiro, item.IdTipoCbte_Ogiro);
                        info_Retencion_x_RIVA = Retencion_B.Get_Info_retencion_X_Retecion_RTIVA(param.IdEmpresa, item.IdCbteCble_Ogiro, item.IdTipoCbte_Ogiro);

                        string secuenci_numReten = "";
                        List <Core.Erp.Info.CuentasxPagar.xmlATS_V_1_1_4.detalleAir> LstdetalleAir = new List <Core.Erp.Info.CuentasxPagar.xmlATS_V_1_1_4.detalleAir>();
                        string fecRet = info_Retencion_x_RF.fecha.ToString("dd/MM/yyyy");


                        if (info_Retencion_x_RF.ListDetalle.Count != 0)
                        {
                            foreach (var item2 in info_Retencion_x_RF.ListDetalle)
                            {
                                Core.Erp.Info.CuentasxPagar.xmlATS_V_1_1_4.detalleAir detalleAir = new Core.Erp.Info.CuentasxPagar.xmlATS_V_1_1_4.detalleAir();
                                detalleAir.codRetAir = item2.CodigoSRI.Trim();

                                detalleAir.porcentajeAir = Convert.ToDecimal(item2.re_Porcen_retencion).ToString();
                                detalleAir.baseImpAir    = Convert.ToDecimal(item2.re_baseRetencion).ToString();

                                fecRet = info_Retencion_x_RF.fecha.ToString("dd/MM/yyyy");
                                detalleAir.valRetAir = Convert.ToDecimal(item2.re_valor_retencion).ToString();
                                LstdetalleAir.Add(detalleAir);
                            }
                        }


                        itemDetalleCompras.valRetBien10      = "0";
                        itemDetalleCompras.valRetServ20      = "0";
                        itemDetalleCompras.valRetServ50      = "0";
                        itemDetalleCompras.valRetServ100     = "0";
                        itemDetalleCompras.valorRetBienes    = "0";
                        itemDetalleCompras.valorRetServicios = "0";
                        itemDetalleCompras.totbasesImpReemb  = "0";


                        if (info_Retencion_x_RIVA.ListDetalle.Count != 0)
                        {
                            foreach (var item_iva in info_Retencion_x_RIVA.ListDetalle)
                            {
                                if (item_iva.re_Porcen_retencion == 10)
                                {
                                    itemDetalleCompras.valRetBien10 = Convert.ToDecimal(item_iva.re_valor_retencion).ToString();
                                }

                                if (item_iva.re_Porcen_retencion == 20)
                                {
                                    itemDetalleCompras.valRetServ20 = Convert.ToDecimal(item_iva.re_valor_retencion).ToString();
                                }

                                if (item_iva.re_Porcen_retencion == 30)
                                {
                                    itemDetalleCompras.valorRetBienes = Convert.ToDecimal(item_iva.re_valor_retencion).ToString();
                                }

                                if (item_iva.re_Porcen_retencion == 50)
                                {
                                    itemDetalleCompras.valRetServ50 = Convert.ToDecimal(item_iva.re_valor_retencion).ToString();
                                }

                                if (item_iva.re_Porcen_retencion == 70)
                                {
                                    itemDetalleCompras.valorRetServicios = Convert.ToDecimal(item_iva.re_valor_retencion).ToString();
                                }


                                if (item_iva.re_Porcen_retencion == 100)
                                {
                                    itemDetalleCompras.valRetServ100 = Convert.ToDecimal(item_iva.re_valor_retencion).ToString();
                                }
                            }
                        }



                        if (item.IdIden_credito != 0)
                        {
                            var sustento = ListCodigoSustento.First(c => c.IdCodigo_SRI == item.IdIden_credito);
                            itemDetalleCompras.codSustento = sustento.codigoSRI;
                        }


                        if (!String.IsNullOrEmpty(item.co_serie))
                        {
                            string[] serie = Convert.ToString(item.co_serie).Split('-');

                            itemDetalleCompras.establecimiento = serie[0];
                            itemDetalleCompras.puntoEmision    = serie[1];
                        }


                        itemDetalleCompras.secuencial = item.co_factura;

                        //if (item.co_factura == "000002133") { MessageBox.Show(""); }



                        itemDetalleCompras.fechaRegistro = Convert.ToDateTime(item.co_FechaContabilizacion).ToString("dd/MM/yyyy");
                        itemDetalleCompras.idProv        = item.InfoProveedor.Persona_Info.pe_cedulaRuc.Trim();
                        itemDetalleCompras.tpIdProv      = (item.InfoProveedor.Persona_Info.IdTipoDocumento.Trim() == "RUC") ? "01" : ((item.InfoProveedor.Persona_Info.IdTipoDocumento.Trim() == "CED") ? "02" : "03");
                        itemDetalleCompras.parteRel      = (item.InfoProveedor.es_empresa_relacionada == true) ? parteRelType.SI : parteRelType.NO;
                        itemDetalleCompras.autorizacion  = (item.Num_Autorizacion == null) ? "" : item.Num_Autorizacion;



                        if (itemDetalleCompras.tpIdProv == "03")
                        {
                            itemDetalleCompras.tipoProv = (item.InfoProveedor.Persona_Info.pe_Naturaleza == "NATUR") ? "01" : "02";

                            if (item.InfoProveedor.es_empresa_relacionada == true)
                            {
                                itemDetalleCompras.parteRel = parteRelType.SI;
                            }
                            else
                            {
                                itemDetalleCompras.parteRel = parteRelType.NO;
                            }
                        }


                        var tipD = LstTipDoc.First(c => c.CodTipoDocumento == item.IdOrden_giro_Tipo);
                        itemDetalleCompras.tipoComprobante = tipD.CodSRI;
                        itemDetalleCompras.fechaEmision    = item.co_FechaFactura.ToString("dd/MM/yyyy");
                        itemDetalleCompras.autorizacion    = item.Num_Autorizacion;

                        itemDetalleCompras.baseNoGraIva  = "0";                                                                                                 //base NO objeto de IVA
                        itemDetalleCompras.baseImponible = Math.Round(Convert.ToDecimal(item.co_subtotal_siniva), 2, MidpointRounding.AwayFromZero).ToString(); // sin iva
                        itemDetalleCompras.baseImpGrav   = Math.Round(Convert.ToDecimal(item.co_subtotal_iva), 2, MidpointRounding.AwayFromZero).ToString();    //con iva
                        itemDetalleCompras.baseImpExe    = "0";

                        itemDetalleCompras.montoIce = Math.Round(Convert.ToDecimal(item.co_Ice_valor), 2, MidpointRounding.AwayFromZero).ToString();
                        itemDetalleCompras.montoIva = Math.Round(Convert.ToDecimal(item.co_valoriva), 2, MidpointRounding.AwayFromZero).ToString();

                        itemDetalleCompras.valRetBien10Specified     = true;
                        itemDetalleCompras.valRetServ20Specified     = true;
                        itemDetalleCompras.valRetServ50Specified     = true;
                        itemDetalleCompras.totbasesImpReembSpecified = true;

                        if (tipD.CodSRI == "05")
                        {
                            itemDetalleCompras.docModificado    = item.Tipodoc_a_Modificar;
                            itemDetalleCompras.estabModificado  = item.estable_a_Modificar;
                            itemDetalleCompras.ptoEmiModificado = item.ptoEmi_a_Modificar;
                            itemDetalleCompras.secModificado    = item.num_docu_Modificar;
                            itemDetalleCompras.autModificado    = item.aut_doc_Modificar;
                        }

                        if (LstdetalleAir.Count > 0)
                        {
                            itemDetalleCompras.air = LstdetalleAir;     //AREGLAR
                        }
                        if (!string.IsNullOrEmpty(info_Retencion_x_RF.NAutorizacion))
                        {
                            secuenci_numReten = info_Retencion_x_RF.NumRetencion.ToString();
                            string sSerieRetencion = "";
                            sSerieRetencion = info_Retencion_x_RF.serie1 + '-' + info_Retencion_x_RF.serie2;
                            if (!string.IsNullOrEmpty(sSerieRetencion))
                            {
                                itemDetalleCompras.estabRetencion1  = info_Retencion_x_RF.serie1;
                                itemDetalleCompras.ptoEmiRetencion1 = info_Retencion_x_RF.serie2;
                            }
                            itemDetalleCompras.secRetencion1 = secuenci_numReten;
                            itemDetalleCompras.autRetencion1 = info_Retencion_x_RF.NAutorizacion;
                            itemDetalleCompras.fechaEmiRet1  = fecRet;
                        }

                        lstDetalleCompras.Add(itemDetalleCompras);

                        pagoExterior Item_pagoExterior = new pagoExterior();

                        if (item.PagoLocExt == "LOC")
                        {
                            Item_pagoExterior.pagoLocExt = pagoLocExtType.Item01;
                        }
                        else
                        {
                            Item_pagoExterior.pagoLocExt = pagoLocExtType.Item02;
                        }


                        Item_pagoExterior.paisEfecPago = (Item_pagoExterior.pagoLocExt == pagoLocExtType.Item01) ? "NA" : (item.PaisPago != null || item.PaisPago != "") ? item.PaisPago : "NA";

                        Item_pagoExterior.aplicConvDobTrib   = (item.ConvenioTributacion == "S") ? aplicConvDobTribType.SI : (item.ConvenioTributacion == "N") ? aplicConvDobTribType.NO :aplicConvDobTribType.NA;
                        Item_pagoExterior.pagExtSujRetNorLeg = (item.PagoSujetoRetencion == "S") ? aplicConvDobTribType.SI : (item.PagoSujetoRetencion == "N") ? aplicConvDobTribType.NO : aplicConvDobTribType.NA;



                        itemDetalleCompras.pagoExterior = Item_pagoExterior;



                        List <cp_orden_giro_pagos_sri_Info> formasDePagoOG = new List <cp_orden_giro_pagos_sri_Info>();
                        formasDePagoOG = formasPago_B.Get_List_orden_giro_pagos_sri(item.IdEmpresa, item.IdCbteCble_Ogiro, item.IdTipoCbte_Ogiro);

                        string  cadena = "";
                        string  coma   = "";
                        Boolean Hay_registros_de_pagos = false;


                        if (formasDePagoOG.Count > 0)
                        {
                            foreach (var itemfp in formasDePagoOG)
                            {
                                if (itemfp.check == true)
                                {
                                    cadena = cadena + coma + itemfp.codigo_pago_sri;
                                    coma   = ",";
                                    Hay_registros_de_pagos = true;
                                }
                            }
                            if (Hay_registros_de_pagos)
                            {
                                itemDetalleCompras.formasDePago = cadena.Split(',');
                            }
                        }


                        if (Hay_registros_de_pagos == false)
                        {
                            decimal Total = 0;
                            Total = Convert.ToDecimal(itemDetalleCompras.baseNoGraIva) + Convert.ToDecimal(itemDetalleCompras.baseImpGrav);

                            if (Total >= 1000)
                            {
                                string[] arr1 = new string[] { "01" };
                                itemDetalleCompras.formasDePago = arr1;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                }

// Para las notas de debito y credito cxp
//*************************************

                cp_nota_DebCre_Bus         nota_B      = new cp_nota_DebCre_Bus();
                List <cp_nota_DebCre_Info> listaNotaDC = new List <cp_nota_DebCre_Info>();
                listaNotaDC = nota_B.Get_List_nota_DebCre(param.IdEmpresa, Convert.ToInt32(cmb_anio.Text), Convert.ToInt32(cmb_periodo.SelectedValue));



                progressBar1.Value = 70;
                foreach (cp_nota_DebCre_Info item in listaNotaDC)
                {
                    Core.Erp.Info.CuentasxPagar.xmlATS_V_1_1_4.detalleCompras itemDetalleCompras = new Core.Erp.Info.CuentasxPagar.xmlATS_V_1_1_4.detalleCompras();



                    List <Core.Erp.Info.CuentasxPagar.xmlATS_V_1_1_4.detalleAir> LstdetalleAir = new List <Core.Erp.Info.CuentasxPagar.xmlATS_V_1_1_4.detalleAir>();

                    cp_proveedor_Autorizacion_Info Autorizacion_I = new cp_proveedor_Autorizacion_Info();

                    var sustento = ListCodigoSustento.First(c => c.IdCodigo_SRI == item.IdIden_credito);
                    itemDetalleCompras.codSustento = sustento.codigoSRI;

                    itemDetalleCompras.establecimiento = item.cn_serie1;
                    itemDetalleCompras.puntoEmision    = item.cn_serie2;
                    itemDetalleCompras.secuencial      = item.cn_Nota;
                    itemDetalleCompras.autorizacion    = item.cn_Autorizacion;



                    //if ("000002133" == item.cn_Nota) { MessageBox.Show(""); }

                    if (item.Fecha_contable != null)
                    {
                        itemDetalleCompras.fechaRegistro = Convert.ToDateTime(item.Fecha_contable).ToString("dd/MM/yyyy");
                        itemDetalleCompras.fechaEmision  = Convert.ToDateTime(item.Fecha_contable).ToString("dd/MM/yyyy");
                    }

                    if (String.IsNullOrEmpty(itemDetalleCompras.fechaRegistro))
                    {
                        itemDetalleCompras.fechaRegistro = Convert.ToDateTime(item.cn_fecha).ToString("dd/MM/yyyy");
                        itemDetalleCompras.fechaEmision  = Convert.ToDateTime(item.cn_fecha).ToString("dd/MM/yyyy");
                    }



                    itemDetalleCompras.idProv   = item.InfoProveedor.Persona_Info.pe_cedulaRuc.Trim();
                    itemDetalleCompras.tpIdProv = (item.InfoProveedor.Persona_Info.IdTipoDocumento.Trim() == "RUC") ? "01" : ((item.InfoProveedor.Persona_Info.IdTipoDocumento.Trim() == "CED") ? "02" : "03");

                    if (itemDetalleCompras.tpIdProv == "03")
                    {
                        itemDetalleCompras.tipoProv = (item.InfoProveedor.Persona_Info.pe_Naturaleza == "NATUR") ? "01" : "02";
                        if (item.InfoProveedor.es_empresa_relacionada == true)
                        {
                            itemDetalleCompras.parteRel = parteRelType.SI;
                        }
                        else
                        {
                            itemDetalleCompras.parteRel = parteRelType.NO;
                        }
                    }



                    itemDetalleCompras.tipoComprobante = (item.DebCre == "C" || item.DebCre == "Credito") ? "04" : "05";
                    if (item.Fecha_contable != null)
                    {
                        itemDetalleCompras.fechaEmision = Convert.ToString(item.Fecha_contable);
                    }

                    itemDetalleCompras.baseNoGraIva  = "0";
                    itemDetalleCompras.baseImponible = Math.Round(Convert.ToDecimal(item.cn_subtotal_siniva), 2, MidpointRounding.AwayFromZero).ToString();    //sin iva
                    itemDetalleCompras.baseImpGrav   = Math.Round(Convert.ToDecimal(item.cn_subtotal_iva), 2, MidpointRounding.AwayFromZero).ToString();
                    itemDetalleCompras.baseImpExe    = "0";


                    itemDetalleCompras.montoIce = Math.Round(Convert.ToDecimal(item.cn_Ice_valor), 2, MidpointRounding.AwayFromZero).ToString();
                    itemDetalleCompras.montoIva = Math.Round(Convert.ToDecimal(item.cn_valoriva), 2, MidpointRounding.AwayFromZero).ToString();


                    itemDetalleCompras.valRetBien10      = "0.00";
                    itemDetalleCompras.valRetServ20      = "0.00";
                    itemDetalleCompras.valorRetBienes    = "0.00";
                    itemDetalleCompras.valRetServ50      = "0.00";
                    itemDetalleCompras.valorRetServicios = "0.00";
                    itemDetalleCompras.valRetServ100     = "0.00";
                    itemDetalleCompras.totbasesImpReemb  = "0.00";

                    itemDetalleCompras.valRetBien10Specified     = true;
                    itemDetalleCompras.valRetServ20Specified     = true;
                    itemDetalleCompras.valRetServ50Specified     = true;
                    itemDetalleCompras.totbasesImpReembSpecified = true;


                    if (LstdetalleAir.Count > 0)
                    {
                        itemDetalleCompras.air = LstdetalleAir;
                    }


                    itemDetalleCompras.docModificado    = item.docModificado;
                    itemDetalleCompras.estabModificado  = item.estabModificado;
                    itemDetalleCompras.ptoEmiModificado = item.ptoEmiModificado;
                    itemDetalleCompras.secModificado    = item.secModificado;
                    itemDetalleCompras.autModificado    = item.autModificado;

                    lstDetalleCompras.Add(itemDetalleCompras);

                    pagoExterior Item_pagoExterior = new pagoExterior();
                    Item_pagoExterior.pagoLocExt   = (item.PagoLocExt == "LOC") ? pagoLocExtType.Item01 : pagoLocExtType.Item02;
                    Item_pagoExterior.paisEfecPago = (Item_pagoExterior.pagoLocExt == pagoLocExtType.Item01) ? "NA"  : (item.PaisPago != null || item.PaisPago != "") ? item.PaisPago : "NA";

                    Item_pagoExterior.aplicConvDobTrib   = (item.ConvenioTributacion == "S") ? aplicConvDobTribType.SI : (item.ConvenioTributacion == "N") ? aplicConvDobTribType.NO :aplicConvDobTribType.NA;
                    Item_pagoExterior.pagExtSujRetNorLeg = (item.PagoSujetoRetencion == "S") ? aplicConvDobTribType.SI : (item.PagoSujetoRetencion == "N") ? aplicConvDobTribType.NO : aplicConvDobTribType.NA;

                    itemDetalleCompras.pagoExterior = Item_pagoExterior;
                }

                iva.compras        = lstDetalleCompras;
                progressBar1.Value = 85;

//*****ANULADOS*******
//********************

                tb_sis_Documento_Tipo_x_Empresa_Anulados_Bus         DocAnu_B  = new tb_sis_Documento_Tipo_x_Empresa_Anulados_Bus();
                List <tb_sis_Documento_Tipo_x_Empresa_Anulados_Info> LstDocAnu = new List <tb_sis_Documento_Tipo_x_Empresa_Anulados_Info>();

                LstDocAnu = DocAnu_B.ConsultaPorMesAnio(param.IdEmpresa, Convert.ToInt32(cmb_anio.Text), Convert.ToInt32(cmb_periodo.SelectedValue));

                List <Core.Erp.Info.CuentasxPagar.xmlATS_V_1_1_4.detalleAnulados> lstDetalleDocAnu = new List <Core.Erp.Info.CuentasxPagar.xmlATS_V_1_1_4.detalleAnulados>();
                foreach (var itemDA in LstDocAnu)
                {
                    if (itemDA.Autorizacion != null)
                    {
                        detalleAnulados info = new detalleAnulados();
                        info.autorizacion     = itemDA.Autorizacion;
                        info.establecimiento  = itemDA.Serie1;
                        info.puntoEmision     = itemDA.Serie2;
                        info.secuencialInicio = itemDA.Documento;
                        info.secuencialFin    = itemDA.DocumentoFin;
                        var tipD = LstTipDoc.First(c => c.CodTipoDocumento == itemDA.codDocumentoTipo);
                        info.tipoComprobante = tipD.CodSRI;
                        lstDetalleDocAnu.Add(info);
                    }
                }

                if (lstDetalleDocAnu.Count > 0)
                {
                    iva.anulados = lstDetalleDocAnu;
                }

                //// FACTURAS

                fa_factura_Bus fac_B = new fa_factura_Bus();

                List <detalleVentas> LstDV = new List <detalleVentas>();
                LstDV = fac_B.Get_List_VentasParaATS(param.IdEmpresa, Convert.ToInt32(cmb_anio.Text), Convert.ToInt32(cmb_periodo.SelectedValue));

                int IdPeriodo = (Convert.ToInt32(iva.Anio) * 100) + Convert.ToInt32(iva.Mes);

                foreach (var item in LstDV)
                {
                    item.montoIce          = 0;
                    item.montoIceSpecified = true;

                    #region Personalizacion de cliente Grafinpren

                    /// el cliente nos pide q enceremos el valor de la retencion de estos meses junio y julio 2016
                    if (param.IdCliente_Ven_x_Default == Cl_Enumeradores.eCliente_Vzen.GRAFINPRENT)
                    {
                        if (IdPeriodo >= 201606 && IdPeriodo <= 201611)
                        {
                            item.valorRetIva   = "0.00";
                            item.valorRetRenta = "0.00";
                        }
                    }
                    #endregion
                }



                if (LstDV.Count() > 0)
                {
                    iva.ventas = LstDV;
                }

                List <ventaEst> LstVenSum = new List <ventaEst>();
                LstVenSum = fac_B.Get_List_VentasXEstablecimientoParaATS(param.IdEmpresa, Convert.ToInt32(cmb_anio.Text), Convert.ToInt32(cmb_periodo.SelectedValue));

                foreach (var item in LstVenSum)
                {
                }
                if (LstVenSum.Count > 0)
                {
                    iva.ventasEstablecimiento = LstVenSum;
                    iva.totalVentas           = Math.Round(Math.Abs(LstVenSum.Sum(c => c.ventasEstab)), 2, MidpointRounding.AwayFromZero);
                }
                else
                {
                    iva.totalVentas = 0;
                }


                iva.totalVentasSpecified = true;

                return(iva);
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString());
                return(iva);
            }
        }
Ejemplo n.º 6
0
        public Boolean AnularFacturaProveedor(cp_orden_giro_Info ordenGiro_I,
                                              List <cp_orden_giro_x_com_ordencompra_local_Info> LstImportacionOC, ref decimal IdCbteCbleRev, ref string msg2)
        {
            Boolean res = true;

            try
            {
                if (CbteCble_B.ReversoCbteCble(ordenGiro_I.IdEmpresa, ordenGiro_I.IdCbteCble_Ogiro, ordenGiro_I.IdTipoCbte_Ogiro,
                                               Convert.ToInt32(ordenGiro_I.IdTipoCbte_Anulacion), ref IdCbteCbleRev, ref msg2, ordenGiro_I.IdUsuarioUltAnu))
                {
                    ordenGiro_I.IdCbteCble_Anulacion = IdCbteCbleRev;
                    if (data.EliminarDB(ordenGiro_I, ref msg2))
                    {
                        #region Anula Retención
                        decimal           idrev          = 0;
                        cp_retencion_Info Info_retencion = Bus_Retencion.Get_Info_retencion(ordenGiro_I.IdEmpresa, ordenGiro_I.IdCbteCble_Ogiro, ordenGiro_I.IdTipoCbte_Ogiro);

                        //cp_retencion_x_ct_cbtecble_Info ret_x_dia = ret_B.ObtenerObjetoRetXCbteCble(ordenGiro_I.IdEmpresa, ordenGiro_I.IdCbteCble_Ogiro,
                        //    ordenGiro_I.IdTipoCbte_Ogiro);

                        if (Info_retencion.IdRetencion != 0)
                        {
                            if (!Bus_Retencion.AnularDB(Info_retencion, ref idrev, ref msg2))
                            {
                                return(false);
                            }
                        }
                        #endregion

                        #region Eliminar Aprobación de ing a bodega x OC

                        cp_Aprobacion_Ing_Bod_x_OC_Bus  bus_aprob_ing_bod_x_OC  = new cp_Aprobacion_Ing_Bod_x_OC_Bus();
                        cp_Aprobacion_Ing_Bod_x_OC_Info info_aprob_ing_bod_x_OC = new cp_Aprobacion_Ing_Bod_x_OC_Info();

                        info_aprob_ing_bod_x_OC = bus_aprob_ing_bod_x_OC.Get_Info_Aprobacion_Ing_Bod_x_OC(ordenGiro_I.IdEmpresa, ordenGiro_I.IdTipoCbte_Ogiro, ordenGiro_I.IdCbteCble_Ogiro);
                        if (info_aprob_ing_bod_x_OC.IdAprobacion != 0)
                        {
                            bus_aprob_ing_bod_x_OC.EliminarDB(info_aprob_ing_bod_x_OC.IdEmpresa, info_aprob_ing_bod_x_OC.IdAprobacion, ordenGiro_I.IdUsuarioUltAnu, ordenGiro_I.MotivoAnu, ref mensaje);
                        }

                        #endregion

                        ocXgastosxImp_B.AnularXOG(ordenGiro_I.IdEmpresa, ordenGiro_I.IdTipoCbte_Ogiro, ordenGiro_I.IdCbteCble_Ogiro,
                                                  Convert.ToInt32(ordenGiro_I.IdTipoCbte_Anulacion), Convert.ToDecimal(ordenGiro_I.IdCbteCble_Anulacion));

                        Importacion_B.EliminarDB(ordenGiro_I.IdEmpresa, ordenGiro_I.IdCbteCble_Ogiro, ordenGiro_I.IdTipoCbte_Ogiro);

                        OC_B.EliminarLista(LstImportacionOC);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "AnularFacturaProveedor", ex.Message), ex)
                      {
                          EntityType = typeof(cp_orden_giro_Bus)
                      };
            }
            return(res);
        }
Ejemplo n.º 7
0
        public Boolean guardarDB(cp_retencion_Info info)
        {
            Boolean res = true;
            tb_sis_Documento_Tipo_Talonario_Info info_documento = new tb_sis_Documento_Tipo_Talonario_Info();
            tb_sis_Documento_Tipo_Talonario_Data data_talonario = new tb_sis_Documento_Tipo_Talonario_Data();

            var punto_venta = odata_pto.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta ?? 0);

            if (punto_venta != null)
            {
                if (punto_venta.EsElectronico == true)
                {
                    info_documento          = odata_talonario.GetUltimoNoUsado(info.IdEmpresa, punto_venta.codDocumentoTipo, punto_venta.Su_CodigoEstablecimiento, punto_venta.cod_PuntoVta, punto_venta.EsElectronico, true);
                    info.NAutorizacion      = null;
                    info.Fecha_Autorizacion = null;
                }
                else
                {
                    info_documento.IdEmpresa        = info.IdEmpresa;
                    info_documento.CodDocumentoTipo = info.CodDocumentoTipo;
                    info_documento.Establecimiento  = info.serie1;
                    info_documento.PuntoEmision     = info.serie2;
                    info_documento.NumDocumento     = info.NumRetencion;
                    info_documento.IdSucursal       = info.IdSucursal;
                    info_documento.Usado            = true;

                    data_talonario.modificar_estado_usadoDB(info_documento);
                }
            }

            try
            {
                using (Entities_cuentas_por_pagar Context = new Entities_cuentas_por_pagar())
                {
                    var lstf = Context.cp_retencion.Where(q => q.IdEmpresa_Ogiro == info.IdEmpresa && q.IdTipoCbte_Ogiro == info.IdTipoCbte_Ogiro && q.IdCbteCble_Ogiro == info.IdCbteCble_Ogiro).FirstOrDefault();
                    if (lstf != null)
                    {
                        return(false);
                    }

                    Context.cp_retencion.Add(new cp_retencion
                    {
                        IdEmpresa        = info.IdEmpresa,
                        IdEmpresa_Ogiro  = info.IdEmpresa_Ogiro,
                        IdCbteCble_Ogiro = info.IdCbteCble_Ogiro,
                        IdTipoCbte_Ogiro = info.IdTipoCbte_Ogiro,
                        IdRetencion      = info.IdRetencion = get_id(info.IdEmpresa),
                        CodDocumentoTipo = info.CodDocumentoTipo = "RETEN",

                        serie1       = info.serie1 = info_documento == null ? null : info_documento.Establecimiento,
                        serie2       = info.serie2 = info_documento == null ? null : info_documento.PuntoEmision,
                        NumRetencion = info.NumRetencion = info_documento == null ? null : info_documento.NumDocumento,

                        NAutorizacion = info.NAutorizacion,
                        observacion   = info.observacion = info.observacion + info.serie1 + "-" + info.serie2 + "-" + info.NumRetencion,
                        fecha         = info.fecha.Date,
                        Estado        = "A",
                        IdPuntoVta    = info.IdPuntoVta,
                        IdSucursal    = info.IdSucursal,
                        Fecha_Transac = DateTime.Now,
                        IdUsuario     = info.IdUsuario,
                    });

                    int Secuencia = 1;
                    foreach (var item in info.detalle)
                    {
                        Context.cp_retencion_det.Add(new cp_retencion_det
                        {
                            IdEmpresa           = info.IdEmpresa,
                            IdRetencion         = info.IdRetencion,
                            Idsecuencia         = Secuencia++,
                            re_tipoRet          = item.re_tipoRet,
                            re_Codigo_impuesto  = item.re_Codigo_impuesto,
                            re_baseRetencion    = (double)item.re_baseRetencion,
                            re_Porcen_retencion = (double)item.re_Porcen_retencion,
                            re_valor_retencion  = (double)item.re_valor_retencion,
                            IdCodigo_SRI        = item.IdCodigo_SRI,
                            IdUsuario           = info.IdUsuario,
                            re_estado           = "A"
                        });
                    }
                    Context.SaveChanges();

                    if (Math.Round((double)info.detalle.Sum(q => q.re_valor_retencion), 2) > 0.01)
                    {
                        ct_cbtecble_Data odata_ct = new ct_cbtecble_Data();
                        var param  = Context.cp_parametros.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault();
                        var diario = odata_ct.armar_info(info.info_comprobante.lst_ct_cbtecble_det, info.IdEmpresa, info.IdSucursal, (int)param.pa_IdTipoCbte_x_Retencion, 0,
                                                         info.observacion, info.fecha);
                        odata_ct.guardarDB(diario);

                        Context.cp_retencion_x_ct_cbtecble.Add(new cp_retencion_x_ct_cbtecble
                        {
                            rt_IdEmpresa   = info.IdEmpresa,
                            rt_IdRetencion = info.IdRetencion,

                            ct_IdEmpresa  = diario.IdEmpresa,
                            ct_IdTipoCbte = diario.IdTipoCbte,
                            ct_IdCbteCble = diario.IdCbteCble,
                            Observacion   = "Relacion"
                        });
                        Context.SaveChanges();
                    }
                }

                return(res);
            }
            catch (Exception ex)
            {
                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "cp_retencion_Data", Metodo = "guardarDB", IdUsuario = info.IdUsuario
                });
                return(false);
            }
        }
Ejemplo n.º 8
0
        private void btn_procesar_Click(object sender, EventArgs e)
        {
            try
            {
                splashScreenManager1.ShowWaitForm();
                progressBar1.Value = 30;

                DS_Iva_REOC_XML = new iva();

                DS_Iva_REOC_XML = CargaDatos();

                string ruta = "";
                saveFileDialog1.FileName         = "AT-" + param.InfoEmpresa.codigo + "-" + ((cmb_periodo.SelectedValue.ToString().Length < 2) ? "0" + cmb_periodo.SelectedValue.ToString() : cmb_periodo.SelectedValue.ToString()) + cmb_anio.Text + ".xml";
                saveFileDialog1.Filter           = "All files (*.xlm*)|*.xlm*";
                saveFileDialog1.InitialDirectory = @direcDoc;
                this.saveFileDialog1.ShowDialog();
                ruta = saveFileDialog1.FileName;


                if (SerializeToXML(DS_Iva_REOC_XML, ruta))
                {
                    progressBar1.Value = 100;

                    string msg = "";

                    if (validaXmlConXsd(ruta, Core.Erp.Info.Properties.Resources.ats_xsd_V_1_1_4, ref msg))
                    {
                        MessageBox.Show("Archivo ATS XML generado en la ruta:" + ruta + ", pero tiene los Siguientes errores:\n " + msg, "Errores en Validación con XSD", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else
                {
                    progressBar1.Value = 0;
                    MessageBox.Show("Ocurrio un inconveniente al guardar el archivo ATS XML", "SISTEMAS", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }



                List <Info.CuentasxPagar.xmlATS_V_1_1_4.detalleCompras> List_Compras = new List <Info.CuentasxPagar.xmlATS_V_1_1_4.detalleCompras>();

                List <Info.CuentasxPagar.xmlATS_V_1_1_4.detalleVentas> List_Ventas = new List <Info.CuentasxPagar.xmlATS_V_1_1_4.detalleVentas>();

                List_Compras = DS_Iva_REOC_XML.compras;
                List_Ventas  = DS_Iva_REOC_XML.ventas;


                List <cp_retencion_Info> listRetenciones = new List <cp_retencion_Info>();


                foreach (var item in List_Compras)
                {
                    cp_retencion_Info InfoRet = new cp_retencion_Info();


                    try
                    {
                        if (item.air != null)
                        {
                            foreach (var item_ret in item.air)
                            {
                                try
                                {
                                    InfoRet.Factura_Prov      = item.establecimiento + "-" + item.puntoEmision + "-" + item.secuencial;
                                    InfoRet.ced_ruc_proveedor = item.idProv;
                                    InfoRet.NumRetencion      = item.secRetencion1;
                                    InfoRet.fecha             = Convert.ToDateTime(item.fechaEmiRet1);

                                    InfoRet.Info_det_retencion.CodigoSRI           = item_ret.codRetAir;
                                    InfoRet.Info_det_retencion.re_baseRetencion    = Convert.ToDouble(item_ret.baseImpAir);
                                    InfoRet.Info_det_retencion.re_Porcen_retencion = Convert.ToDouble(item_ret.porcentajeAir);
                                    InfoRet.Info_det_retencion.re_valor_retencion  = Convert.ToDouble(item_ret.valRetAir);
                                    listRetenciones.Add(InfoRet);
                                }
                                catch (Exception ex)
                                {
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                }

                gridControlCompras.DataSource = List_Compras;
                gridControlRT.DataSource      = listRetenciones;
                gridControlVentas.DataSource  = List_Ventas;

                splashScreenManager1.CloseWaitForm();
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.Message);
                splashScreenManager1.CloseWaitForm();
            }
        }
Ejemplo n.º 9
0
        public cp_retencion_Info get_info(int IdEmpresa, decimal IdRetencion)
        {
            try
            {
                cp_retencion_Info info = new cp_retencion_Info();
                using (SqlConnection connection = new SqlConnection(ConexionesERP.GetConnectionString()))
                {
                    connection.Open();
                    SqlCommand command = new SqlCommand();
                    command.Connection  = connection;
                    command.CommandText = "SELECT dbo.cp_retencion.IdEmpresa, dbo.cp_retencion.IdRetencion, dbo.cp_retencion.CodDocumentoTipo, dbo.cp_retencion.serie1, dbo.cp_retencion.serie2, dbo.cp_retencion.NumRetencion, dbo.cp_retencion.NAutorizacion, "
                                          + " dbo.cp_retencion.Fecha_Autorizacion, dbo.cp_retencion.fecha, dbo.cp_retencion.observacion, dbo.cp_orden_giro.co_serie, dbo.cp_orden_giro.co_factura, dbo.cp_orden_giro.co_subtotal_iva, dbo.cp_orden_giro.co_subtotal_siniva, "
                                          + " dbo.cp_orden_giro.co_baseImponible, dbo.cp_orden_giro.co_valoriva, dbo.tb_persona.pe_apellido, dbo.tb_persona.pe_nombre, dbo.tb_persona.pe_razonSocial, dbo.cp_retencion_x_ct_cbtecble.ct_IdTipoCbte, "
                                          + " dbo.cp_retencion_x_ct_cbtecble.ct_IdCbteCble, dbo.cp_proveedor.IdProveedor, dbo.cp_retencion.Estado, dbo.tb_persona.pe_nombreCompleto, dbo.cp_retencion.IdEmpresa_Ogiro, dbo.cp_retencion.IdCbteCble_Ogiro, "
                                          + " dbo.cp_retencion.IdTipoCbte_Ogiro, dbo.cp_orden_giro.IdSucursal, dbo.cp_orden_giro.IdSucursal_cxp, dbo.cp_retencion.IdSucursal AS Expr1, dbo.cp_retencion.IdPuntoVta, dbo.cp_retencion.Generado, "
                                          + " dbo.cp_retencion.aprobada_enviar_sri, case when dbo.cp_retencion.Estado = 'A' then cast(1 as bit) else cast(0 as bit) end as EstadoBool"
                                          + " FROM     dbo.cp_proveedor LEFT OUTER JOIN"
                                          + " dbo.tb_persona ON dbo.cp_proveedor.IdPersona = dbo.tb_persona.IdPersona RIGHT OUTER JOIN"
                                          + " dbo.cp_orden_giro ON dbo.cp_proveedor.IdEmpresa = dbo.cp_orden_giro.IdEmpresa AND dbo.cp_proveedor.IdProveedor = dbo.cp_orden_giro.IdProveedor RIGHT OUTER JOIN"
                                          + " dbo.cp_retencion ON dbo.cp_orden_giro.IdEmpresa = dbo.cp_retencion.IdEmpresa_Ogiro AND dbo.cp_orden_giro.IdCbteCble_Ogiro = dbo.cp_retencion.IdCbteCble_Ogiro AND"
                                          + " dbo.cp_orden_giro.IdTipoCbte_Ogiro = dbo.cp_retencion.IdTipoCbte_Ogiro LEFT OUTER JOIN"
                                          + " dbo.cp_retencion_x_ct_cbtecble ON dbo.cp_retencion.IdEmpresa = dbo.cp_retencion_x_ct_cbtecble.rt_IdEmpresa AND dbo.cp_retencion.IdRetencion = dbo.cp_retencion_x_ct_cbtecble.rt_IdRetencion"
                                          + " where dbo.cp_retencion.IdEmpresa = " + IdEmpresa.ToString() + " and dbo.cp_retencion.IdRetencion = " + IdRetencion.ToString();

                    var ResultValue = command.ExecuteScalar();
                    if (ResultValue == null)
                    {
                        return(null);
                    }

                    SqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        info = new cp_retencion_Info
                        {
                            IdEmpresa         = Convert.ToInt32(reader["IdEmpresa"]),
                            IdRetencion       = Convert.ToDecimal(reader["IdRetencion"]),
                            pe_apellido       = Convert.ToString(reader["pe_apellido"]),
                            pe_nombre         = Convert.ToString(reader["pe_nombre"]),
                            pe_razonSocial    = Convert.ToString(reader["pe_razonSocial"]),
                            NumRetencion      = Convert.ToString(reader["NumRetencion"]),
                            serie1            = Convert.ToString(reader["serie1"]),
                            serie2            = Convert.ToString(reader["serie2"]),
                            co_serie          = Convert.ToString(reader["co_serie"]),
                            co_factura        = Convert.ToString(reader["co_factura"]),
                            co_baseImponible  = reader["co_baseImponible"] == DBNull.Value ? 0 : Convert.ToDouble(reader["co_baseImponible"]),
                            Estado            = Convert.ToString(reader["Estado"]),
                            pe_nombreCompleto = Convert.ToString(reader["pe_nombreCompleto"]),
                            fecha             = Convert.ToDateTime(reader["fecha"]),
                            NAutorizacion     = Convert.ToString(reader["NAutorizacion"]),
                            EstadoBool        = Convert.ToBoolean(reader["EstadoBool"]),
                            IdSucursal        = Convert.ToInt32(reader["IdSucursal"]),
                            IdPuntoVta        = Convert.ToInt32(reader["IdPuntoVta"]),
                            ct_IdTipoCbte     = reader["ct_IdTipoCbte"] == DBNull.Value ? null : (int?)(reader["ct_IdTipoCbte"]),
                            ct_IdCbteCble     = reader["ct_IdCbteCble"] == DBNull.Value ? null : (decimal?)(reader["ct_IdCbteCble"]),
                        };
                    }
                    reader.Close();
                }
                return(info);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public Boolean Generar_Orden_Giro(cp_Aprobacion_Ing_Bod_x_OC_Info Info, ref string msg)
        {
            try
            {
                List <cp_Aprobacion_Ing_Bod_x_OC_det_Info> lstDet_OG = new List <cp_Aprobacion_Ing_Bod_x_OC_det_Info>();
                cp_parametros_Data data_cpParam = new cp_parametros_Data();
                cp_parametros_Info info_cpParam = new cp_parametros_Info();
                info_cpParam = data_cpParam.Get_Info_parametros(Info.IdEmpresa);

                if (Info.IdCbteCble_Ogiro != 0 && Info.IdCbteCble_Ogiro != null)
                {
                    return(true);
                }

                #region Generar Info ct_Cbtecble
                //cabecera
                ct_Cbtecble_Info info_CbteCble = new ct_Cbtecble_Info();
                info_CbteCble.IdEmpresa      = Info.IdEmpresa;
                info_CbteCble.IdTipoCbte     = info_cpParam.pa_TipoCbte_OG;
                info_CbteCble.IdPeriodo      = Convert.ToInt32(Info.Fecha_Factura.ToString("yyyyMM"));
                info_CbteCble.cb_Fecha       = (Info.co_FechaContabilizacion == null) ? Info.Fecha_Factura : Convert.ToDateTime(Info.co_FechaContabilizacion);
                info_CbteCble.cb_Valor       = Info.co_total;
                info_CbteCble.cb_Observacion = Info.Observacion == "" ? "Diario generado con # Aprobación Ing. a Bod. por O/C: " + Info.IdAprobacion + ", con Tipo Comprabante #: " + info_cpParam.pa_TipoCbte_OG + " y Fecha Aprobación: " + Info.Fecha_aprobacion + "" : Info.Observacion;
                info_CbteCble.Secuencia      = 0;
                info_CbteCble.Estado         = "A";
                info_CbteCble.Anio           = Info.Fecha_Factura.Year;
                info_CbteCble.Mes            = Info.Fecha_Factura.Month;
                info_CbteCble.Mayorizado     = "N";

                //detalle
                List <ct_Cbtecble_det_Info> lista = new List <ct_Cbtecble_det_Info>();
                int Secuencia = 0;
                lstDet_OG = get_OG_x_Cta_Cble(Info.listDetalle);

                foreach (var item in lstDet_OG)
                {// gastos
                    ct_Cbtecble_det_Info InfoGasto = new ct_Cbtecble_det_Info();
                    Secuencia            = Secuencia + 1;
                    InfoGasto.IdEmpresa  = Info.IdEmpresa;
                    InfoGasto.IdTipoCbte = info_cpParam.pa_TipoCbte_OG;
                    InfoGasto.secuencia  = Secuencia;
                    InfoGasto.IdCtaCble  = item.IdCtaCble_Gasto;

                    InfoGasto.IdCentroCosto = item.IdCentro_Costo;
                    InfoGasto.IdCentroCosto_sub_centro_costo = item.IdCentroCosto_sub_centro_costo;
                    InfoGasto.IdPunto_cargo_grupo            = item.IdPunto_cargo_grupo;
                    InfoGasto.IdPunto_cargo = item.IdPunto_cargo;

                    InfoGasto.dc_Valor           = item.SubTotal;
                    InfoGasto.dc_Observacion     = Info.Observacion == "" ? "Diario generado con # Aprobación Ing. a Bod. por O/C: " + Info.IdAprobacion + ", con Tipo Comprabante #: " + info_cpParam.pa_TipoCbte_OG + " y Fecha Aprobación: " + Info.Fecha_aprobacion + "" : Info.Observacion;
                    InfoGasto.dc_Numconciliacion = null;
                    InfoGasto.dc_EstaConciliado  = null;
                    lista.Add(InfoGasto);
                }


                if (Info.co_valoriva > 0)
                {
                    ct_Cbtecble_det_Info InfoIva = new ct_Cbtecble_det_Info();

                    InfoIva.IdEmpresa  = Info.IdEmpresa;
                    InfoIva.IdTipoCbte = info_cpParam.pa_TipoCbte_OG;
                    InfoIva.secuencia  = Secuencia + 2;
                    InfoIva.IdCtaCble  = Info.pa_ctacble_iva.Trim();
                    //InfoIva.IdCentroCosto = null;
                    //InfoIva.IdCentroCosto_sub_centro_costo = null;
                    InfoIva.dc_Valor           = Info.co_valoriva;
                    InfoIva.dc_Observacion     = Info.Observacion == "" ? "Diario generado con # Aprobación Ing. a Bod. por O/C: " + Info.IdAprobacion + ", con Tipo Comprabante #: " + info_cpParam.pa_TipoCbte_OG + " y Fecha Aprobación: " + Info.Fecha_aprobacion + "" : Info.Observacion;
                    InfoIva.dc_Numconciliacion = null;
                    InfoIva.dc_EstaConciliado  = null;
                    lista.Add(InfoIva);
                }

                ct_Cbtecble_det_Info InfoCXP = new ct_Cbtecble_det_Info();
                InfoCXP.IdEmpresa  = Info.IdEmpresa;
                InfoCXP.IdTipoCbte = info_cpParam.pa_TipoCbte_OG;
                InfoCXP.secuencia  = Secuencia + 1;
                InfoCXP.IdCtaCble  = Info.IdCtaCble_CXP.Trim();
                //InfoCXP.IdCentroCosto = Info.IdCentroCosoto_CXP;
                //InfoCXP.IdCentroCosto_sub_centro_costo = null;
                InfoCXP.dc_Valor           = Info.co_total * -1;
                InfoCXP.dc_Observacion     = Info.Observacion == "" ? "Diario generado con # Aprobación Ing. a Bod. por O/C: " + Info.IdAprobacion + ", con Tipo Comprabante #: " + info_cpParam.pa_TipoCbte_OG + " y Fecha Aprobación: " + Info.Fecha_aprobacion + "" : Info.Observacion;
                InfoCXP.dc_Numconciliacion = null;
                InfoCXP.dc_EstaConciliado  = null;
                lista.Add(InfoCXP);

                info_CbteCble._cbteCble_det_lista_info = lista;

                //grabar diario

                #endregion

                #region Genere cp_orden_giro_Info y graba Orden Giro


                //Generar Info cp_orden_giro
                cp_orden_giro_Info Info_Ogiro = new cp_orden_giro_Info();
                Info_Ogiro.IdEmpresa                = Info.IdEmpresa;
                Info_Ogiro.IdTipoCbte_Ogiro         = info_cpParam.pa_TipoCbte_OG;
                Info_Ogiro.IdOrden_giro_Tipo        = Info.IdOrden_giro_Tipo;
                Info_Ogiro.IdProveedor              = Info.IdProveedor;
                Info_Ogiro.co_fechaOg               = Info.Fecha_aprobacion;
                Info_Ogiro.co_FechaFactura          = Info.Fecha_Factura;
                Info_Ogiro.co_FechaFactura_vct      = Info.Fecha_vcto;
                Info_Ogiro.co_plazo                 = Info.co_plazo;
                Info_Ogiro.co_FechaContabilizacion  = (Info.co_FechaContabilizacion == null) ? Info.Fecha_Factura : Info.co_FechaContabilizacion;
                Info_Ogiro.co_serie                 = Info.Serie + "-" + Info.Serie2;
                Info_Ogiro.Num_Autorizacion         = Info.num_auto_Proveedor;
                Info_Ogiro.co_factura               = Info.num_documento;
                Info_Ogiro.co_observacion           = Info.Observacion;
                Info_Ogiro.co_subtotal_iva          = Info.co_subtotal_iva;
                Info_Ogiro.co_subtotal_siniva       = Info.co_subtotal_siniva;
                Info_Ogiro.co_baseImponible         = Info.co_baseImponible;
                Info_Ogiro.co_Por_iva               = Info.co_Por_iva;
                Info_Ogiro.co_valoriva              = Info.co_valoriva;
                Info_Ogiro.IdCod_ICE                = 866;//NO APLICA
                Info_Ogiro.co_Ice_base              = 0;
                Info_Ogiro.co_Ice_por               = 0;
                Info_Ogiro.co_Ice_valor             = 0;
                Info_Ogiro.co_Serv_valor            = 0;
                Info_Ogiro.co_Serv_por              = 0;
                Info_Ogiro.co_OtroValor_a_descontar = 0;
                Info_Ogiro.co_OtroValor_a_Sumar     = 0;
                Info_Ogiro.co_BaseSeguro            = 0;
                Info_Ogiro.co_total                 = Info.co_total;
                Info_Ogiro.co_valorpagar            = Info.co_total;
                Info_Ogiro.co_vaCoa                 = "S";
                Info_Ogiro.IdIden_credito           = Info.IdIden_credito;
                Info_Ogiro.IdCod_101                = 837;//No Aplica
                Info_Ogiro.IdTipoFlujo              = null;
                Info_Ogiro.IdTipoServicio           = "BIEN";
                Info_Ogiro.IdCtaCble_Gasto          = Info.IdCtaCble_Gasto;
                Info_Ogiro.IdTipoMovi               = Info.IdTipoMovi;
                Info_Ogiro.IdCtaCble_IVA            = Info.co_valoriva > 0 ? Info.pa_ctacble_iva.Trim() : null;
                Info_Ogiro.Estado = "A";

                Info_Ogiro.IdUsuario     = "";
                Info_Ogiro.Fecha_Transac = DateTime.Now;

                Info_Ogiro.IdUsuarioUltMod = "";
                Info_Ogiro.Fecha_UltMod    = null;
                Info_Ogiro.IdUsuarioUltAnu = null;
                Info_Ogiro.MotivoAnu       = null;
                Info_Ogiro.nom_pc          = "";
                Info_Ogiro.Fecha_UltAnu    = null;
                Info_Ogiro.ip = "";

                Info_Ogiro.co_retencionManual   = "S";
                Info_Ogiro.IdCbteCble_Anulacion = null;
                Info_Ogiro.IdTipoCbte_Anulacion = null;
                Info_Ogiro.IdCentroCosto        = null;
                Info_Ogiro.IdSucursal           = 1;
                Info_Ogiro.PagoLocExt           = "LOC";
                Info_Ogiro.PaisPago             = null;
                Info_Ogiro.ConvenioTributacion  = "NO";
                Info_Ogiro.PagoSujetoRetencion  = "NO";
                Info_Ogiro.BseImpNoObjDeIva     = 0;

                Info_Ogiro.Num_Autorizacion_Imprenta = Info.num_auto_Imprenta;

                Info_Ogiro.fecha_autorizacion = Info.fecha_autorizacion;

                //verificar Id_Num_Autorizacion
                cp_Autorizacion_x_Doc_x_Pag_Data data_NumAuto = new cp_Autorizacion_x_Doc_x_Pag_Data();
                string msge = "";
                if (!data_NumAuto.Verificar_NumAutorizacion_Ogiro(Info.num_auto_Proveedor, ref msge))
                {
                    //grabar
                    cp_Autorizacion_x_Doc_x_Pag_Info info = new cp_Autorizacion_x_Doc_x_Pag_Info();
                    info.Id_Num_Autorizacion = Info.num_auto_Proveedor;

                    data_NumAuto.GuardarDB(info, ref msge);

                    Info_Ogiro.Num_Autorizacion = Info.num_auto_Proveedor;
                }

                cp_orden_giro_Bus                   BusOrdenGiro_B    = new cp_orden_giro_Bus();
                List <cp_reembolso_Info>            lst_reembolso     = null;
                List <cp_orden_giro_pagos_sri_Info> lst_formasPagoSRI = null;
                cp_retencion_Info                   InfoRetencion     = null;
                ct_Cbtecble_Info InfoCbteCble_x_Ret = null;

                string es_332_333_334 = "";


                List <imp_ordencompra_ext_x_imp_gastosxImport_Info> LstImportacionGrid = null;
                List <imp_ordencompra_ext_x_ct_cbtecble_Info>       LstocXcbt_I        = null;
                List <cp_orden_giro_x_imp_ordencompra_ext_Info>     LisImportacion     = null;
                List <cp_orden_giro_x_com_ordencompra_local_Info>   LstImportacionOC   = null;
                decimal idCbteCble = 0;

                Info_Ogiro.Info_CbteCble_x_OG = info_CbteCble;
                Info_Ogiro.lst_formasPagoSRI  = lst_formasPagoSRI;
                Info_Ogiro.Info_Retencion     = InfoRetencion;

                if (Info_Ogiro.Info_Retencion != null)
                {
                    Info_Ogiro.Info_Retencion.Info_CbteCble_x_RT = InfoCbteCble_x_Ret;
                }


                Info_Ogiro.LstImportacionOC = LstImportacionOC;


                if (BusOrdenGiro_B.ExisteFacturaPorProveedor(Info_Ogiro.IdEmpresa, Info_Ogiro.IdProveedor, Info_Ogiro.co_serie, Info_Ogiro.co_factura))
                {
                    if (BusOrdenGiro_B.ModificarDB(Info_Ogiro, ref msg))
                    {
                        Info.IdEmpresa_Ogiro  = Info_Ogiro.IdEmpresa;
                        Info.IdCbteCble_Ogiro = Info_Ogiro.IdCbteCble_Ogiro;
                        Info.IdTipoCbte_Ogiro = Info_Ogiro.IdTipoCbte_Ogiro;
                    }
                }
                else
                {
                    if (BusOrdenGiro_B.GrabarDB(Info_Ogiro, ref idCbteCble, ref msg))
                    {
                        Info.IdEmpresa_Ogiro  = Info_Ogiro.IdEmpresa;
                        Info.IdCbteCble_Ogiro = Info_Ogiro.IdCbteCble_Ogiro;
                        Info.IdTipoCbte_Ogiro = Info_Ogiro.IdTipoCbte_Ogiro;
                    }
                }


                #endregion


                return(true);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "Generar_Orden_Giro", ex.Message), ex)
                      {
                          EntityType = typeof(cp_Aprobacion_Ing_Bod_x_OC_Bus)
                      };
            }
        }
Ejemplo n.º 11
0
        public ActionResult Nuevo(cp_retencion_Info model)
        {
            bus_retencion   = new cp_retencion_Bus();
            model.IdUsuario = SessionFixed.IdUsuario.ToString();
            model.detalle   = List_cp_retencion_det.get_list(Convert.ToDecimal(model.IdTransaccionSession));
            model.info_comprobante.lst_ct_cbtecble_det = List_ct_cbtecble_det_List.get_list(Convert.ToDecimal(model.IdTransaccionSession));
            info_param_op = Session["info_param_op"] as cp_parametros_Info;
            model.info_comprobante.IdTipoCbte = (int)info_param_op.pa_IdTipoCbte_x_Retencion;

            string mensaje = bus_retencion.validar(model);

            if (!validar(model, ref mensaje))
            {
                cargar_combos(model.IdEmpresa);
                ViewBag.mensaje = mensaje;
                return(View(model));
            }
            if (mensaje != "")
            {
                cargar_combos(model.IdEmpresa);
                ViewBag.mensaje = mensaje;
                cargar_combos_detalle();
                return(View(model));
            }
            else
            {
                var lista_cp_codigo_SRI = lst_codigo_retencion.get_list();

                if (lista_cp_codigo_SRI.Count > 0)
                {
                    model.detalle.ForEach(item =>
                    {
                        cp_codigo_SRI_Info info_ = lista_cp_codigo_SRI.Where(v => v.IdCodigo_SRI == item.IdCodigo_SRI).FirstOrDefault();
                        item.re_Codigo_impuesto  = info_.co_codigoBase;

                        if (info_.IdTipoSRI == "COD_RET_IVA")
                        {
                            model.re_Tiene_RFuente = "S";
                            item.re_tipoRet        = "IVA";
                        }
                        if (info_.IdTipoSRI == "COD_RET_FUE")
                        {
                            model.re_Tiene_RTiva = "S";
                            item.re_tipoRet      = "RTF";
                        }
                    });
                }

                if (bus_retencion.guardarDB(model))
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    ViewBag.mensaje = mensaje;
                    cargar_combos(model.IdEmpresa);
                    cargar_combos_detalle();
                    return(View(model));
                }
            }
        }
Ejemplo n.º 12
0
 public void set_Info_Retencion(cp_retencion_Info _Info_Retencion)
 {
     Info_Retencion = _Info_Retencion;
 }
Ejemplo n.º 13
0
        public Boolean Modificar_Num_Retencion(cp_retencion_Info Info_Retencion, ref string mensajeError)
        {
            try
            {
                Boolean res = false;


                tb_sis_Documento_Tipo_Talonario_Bus  busTalonario  = new tb_sis_Documento_Tipo_Talonario_Bus();
                tb_sis_Documento_Tipo_Talonario_Info infoTalonario = new tb_sis_Documento_Tipo_Talonario_Info();
                tb_Sucursal_Bus Bus_Sucu   = new tb_Sucursal_Bus();
                tb_Bodega_Bus   Bus_bodega = new tb_Bodega_Bus();

                string mensajeDocumentoDupli = "";
                string cod_estable           = "";
                string cod_pto_emision       = "";

                Info_Retencion.CodDocumentoTipo = string.IsNullOrEmpty(Info_Retencion.CodDocumentoTipo) ? "RETEN" : Info_Retencion.CodDocumentoTipo;


                // el objeto viene sin serie o sin # factura tomo el ultimo num de factura del talonario
                if (Info_Retencion.serie1 == "" || Info_Retencion.serie1 == null || Info_Retencion.serie2 == "" || Info_Retencion.serie2 == null ||
                    Info_Retencion.NumRetencion == "" || Info_Retencion.NumRetencion == null)
                {
                    cod_estable     = Bus_Sucu.Get_Cod_Establecimiento_x_Sucursal(Info_Retencion.IdEmpresa, param.IdSucursal);
                    cod_pto_emision = Bus_bodega.Get_cod_pto_emision_x_Bodega(Info_Retencion.IdEmpresa, param.IdSucursal, 1);

                    infoTalonario = busTalonario.Get_Info_Primer_Documento_no_usado(Info_Retencion.IdEmpresa, cod_estable, cod_pto_emision, Info_Retencion.CodDocumentoTipo
                                                                                    , Info_Retencion.EsDocumentoElectronico);


                    if (infoTalonario.NumDocumento == null)
                    {
                        mensajeError = "No hay talonarios para Establecimiento=" + cod_estable + " y punto de emision=" + cod_pto_emision;
                        throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "no hay talonario activos", mensajeError))
                              {
                                  EntityType = typeof(cp_retencion_Bus)
                              };
                    }

                    Info_Retencion.serie1       = infoTalonario.Establecimiento;
                    Info_Retencion.serie2       = infoTalonario.PuntoEmision;
                    Info_Retencion.NumRetencion = infoTalonario.NumDocumento;
                }
                else
                {
                    // se puede dar si mas de un usario estan haciendo la factura y tienen en memoria o en la pantalla el mismo talonario
                    //verifico el numero de factura si esta usado
                    infoTalonario.Establecimiento          = Info_Retencion.serie1;
                    infoTalonario.PuntoEmision             = Info_Retencion.serie2;
                    infoTalonario.NumDocumento             = Info_Retencion.NumRetencion;
                    infoTalonario.IdEmpresa                = Info_Retencion.IdEmpresa;
                    infoTalonario.CodDocumentoTipo         = Info_Retencion.CodDocumentoTipo;
                    infoTalonario.es_Documento_electronico = Info_Retencion.EsDocumentoElectronico;


                    if (busTalonario.Documento_talonario_esta_Usado(infoTalonario, ref mensajeError, ref mensajeDocumentoDupli))
                    {
                        //si esta en usado busco el siguiente
                        cod_estable     = Bus_Sucu.Get_Cod_Establecimiento_x_Sucursal(Info_Retencion.IdEmpresa, param.IdSucursal);
                        cod_pto_emision = Bus_bodega.Get_cod_pto_emision_x_Bodega(Info_Retencion.IdEmpresa, param.IdSucursal, 1);

                        infoTalonario = busTalonario.Get_Info_Primer_Documento_no_usado(Info_Retencion.IdEmpresa, cod_estable,
                                                                                        cod_pto_emision, Info_Retencion.CodDocumentoTipo, Info_Retencion.EsDocumentoElectronico);

                        if (infoTalonario.NumDocumento == null)
                        {
                            throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "no hay talonario activos", mensajeError))
                                  {
                                      EntityType = typeof(cp_retencion_Bus)
                                  };
                        }

                        Info_Retencion.serie1       = infoTalonario.Establecimiento;
                        Info_Retencion.serie2       = infoTalonario.PuntoEmision;
                        Info_Retencion.NumRetencion = infoTalonario.NumDocumento;

                        if (!infoTalonario.es_Documento_electronico)
                        {
                            //si no es documento electronico le actualizo el numero de autorizacion y la fecha de autorizacion
                            Info_Retencion.NAutorizacion      = infoTalonario.NumAutorizacion;
                            Info_Retencion.Fecha_Autorizacion = DateTime.Now.Date;
                        }
                    }
                    else
                    {
                        if (!infoTalonario.es_Documento_electronico)
                        {
                            //Si no esta siendo usado, si no es documento electronico le actualizo el numero de autorizacion y la fecha de autorizacion
                            infoTalonario = busTalonario.Get_Info_Documento_Tipo_Talonario(Info_Retencion.IdEmpresa, Info_Retencion.CodDocumentoTipo, cod_estable, cod_pto_emision, Info_Retencion.NumRetencion);


                            Info_Retencion.NAutorizacion      = infoTalonario.NumAutorizacion;
                            Info_Retencion.Fecha_Autorizacion = DateTime.Now.Date;
                        }
                    }
                }

                res = data_retencion.Modificar_Num_Retencion(Info_Retencion, ref mensajeError);
                busTalonario.Modificar_Estado_Usado(infoTalonario, ref mensajeError);

                return(res);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "ModificarNRetencion", ex.Message), ex)
                      {
                          EntityType = typeof(cp_retencion_Bus)
                      };
            }
        }
Ejemplo n.º 14
0
        public Boolean Graba_CbteCble_Ret_FactProveedor(cp_retencion_Info info, ct_Cbtecble_Info cbtecble, ref string mensaje)
        {
            decimal idCbteCble               = 0;
            Boolean res_Grabar_RT            = false;
            Boolean res_Grabar_CbteCble_x_RT = false;

            try
            {
                if (cbtecble.IdTipoCbte == 0)
                {
                    cp_parametros_Bus  ParBu    = new cp_parametros_Bus();
                    cp_parametros_Info ParaInfo = new cp_parametros_Info();

                    ParaInfo            = ParBu.Get_Info_parametros(info.IdEmpresa);
                    cbtecble.IdTipoCbte = Convert.ToInt32(ParaInfo.pa_IdTipoCbte_x_Retencion);
                }



                cbtecble.IdCbteCble = idCbteCble;


                if (string.IsNullOrEmpty(cbtecble.cb_Observacion))
                {
                    cbtecble.cb_Observacion = info.observacion;
                }

                foreach (var item in cbtecble._cbteCble_det_lista_info)
                {
                    if (string.IsNullOrEmpty(item.dc_Observacion))
                    {
                        item.dc_Observacion = "RT " + info.observacion;
                    }
                }

                if (info.IdRetencion == 0)
                {//grabando cabecera y detalle de retencion
                    res_Grabar_RT = GrabarDB(info);
                }
                else
                {
                    res_Grabar_RT = true; // ya esta grabado
                }
                if (res_Grabar_RT)        //si grabo la retencion se hace el diario
                {
                    res_Grabar_CbteCble_x_RT = CbteCble_B.GrabarDB(cbtecble, ref idCbteCble, ref mensaje);



                    //puede q no guarde el diario por q sea una retencion en 0%
                    if (res_Grabar_CbteCble_x_RT && res_Grabar_RT)//si grabo cbte y retencion
                    {
                        cp_retencion_x_ct_cbtecble_Info TI = new cp_retencion_x_ct_cbtecble_Info();
                        TI.ct_IdCbteCble  = idCbteCble;
                        TI.ct_IdEmpresa   = cbtecble.IdEmpresa;
                        TI.ct_IdTipoCbte  = cbtecble.IdTipoCbte;
                        TI.Observacion    = "";
                        TI.rt_IdEmpresa   = info.IdEmpresa;
                        TI.rt_IdRetencion = info.IdRetencion;
                        GrabarDB_Ret_CbteCble(TI, ref mensaje);
                    }
                }

                return(res_Grabar_RT);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "Graba_CbteCble_Ret_FactProveedor", ex.Message), ex)
                      {
                          EntityType = typeof(cp_retencion_Bus)
                      };
            }
        }
Ejemplo n.º 15
0
        public Boolean ModificarDB(cp_retencion_Info info, ct_Cbtecble_Info cbtecble, ref string mensaje)
        {
            Boolean res = true;

            try
            {
                cp_retencion_Info ret = new cp_retencion_Info();
                if (!ValidaRetencion(info, ref mensaje))
                {
                    return(false);
                }

                if (string.IsNullOrEmpty(info.NumRetencion) || string.IsNullOrEmpty(info.serie1) || string.IsNullOrEmpty(info.serie2))
                {
                    return(true);
                }

                ret = Get_Info_retencion(info.IdEmpresa, Convert.ToDecimal(info.IdCbteCble_Ogiro), Convert.ToInt32(info.IdTipoCbte_Ogiro));
                if (ret == null || ret.ListDetalle == null || ret.ListDetalle.Count <= 0)
                {
                    return(Graba_CbteCble_Ret_FactProveedor(info, cbtecble, ref mensaje));
                }
                info.IdRetencion = ret.IdRetencion;
                foreach (var item in info.ListDetalle)
                {
                    item.IdRetencion = info.IdRetencion;
                }

                if (cbtecble.IdCbteCble == 0)
                {
                    Graba_CbteCble_Ret_FactProveedor(info, cbtecble, ref mensaje);
                }

                foreach (var item in cbtecble._cbteCble_det_lista_info)
                {
                    item.IdCbteCble = cbtecble.IdCbteCble;
                    item.IdTipoCbte = cbtecble.IdTipoCbte;
                }

                if (data_retencion.Modificar_Num_Retencion(info, ref mensaje)) // solo modifica la cab de retencion
                {
                    cp_retencion_det_Data odataDet = new cp_retencion_det_Data();
                    if (odataDet.ActualizarDB(info.ListDetalle, ret.ListDetalle)) // elimina el detalle y lo vuelve a crear
                    {
                        if (!CbteCble_B.ModificarDB(cbtecble, ref mensaje))
                        {
                            mensaje = "Ha ocurrido un error al actualizar el CbteCble de Retención..." + mensaje;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "ModificarDB", ex.Message), ex)
                      {
                          EntityType = typeof(cp_retencion_Bus)
                      };
            }
            return(res);
        }