コード例 #1
0
        public bool guardarDB(cp_retencion_Info info)
        {
            try
            {
                int sec = 1;
                using (Entities_cuentas_por_pagar Context = new Entities_cuentas_por_pagar())
                {
                    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();
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #2
0
        public Boolean GrabarDB(List <cp_retencion_det_Info> lista)
        {
            try
            {
                int secuencia            = 0;
                EntitiesCuentasxPagar Cp = new EntitiesCuentasxPagar();
                foreach (var item in lista)
                {
                    Cp.SetCommandTimeOut(3000);
                    cp_retencion_det det = new cp_retencion_det();
                    det.IdEmpresa = item.IdEmpresa;
                    //  det.IdCbteCble_Ogiro = item.IdCbteCble_Ogiro;
                    //  det.IdTipoCbte_Ogiro = item.IdTipoCbte_Ogiro;
                    det.IdRetencion         = item.IdRetencion;
                    det.Idsecuencia         = ++secuencia;
                    det.re_tipoRet          = item.re_tipoRet;
                    det.re_baseRetencion    = item.re_baseRetencion;
                    det.IdCodigo_SRI        = item.IdCodigo_SRI;
                    det.re_Codigo_impuesto  = item.re_Codigo_impuesto;
                    det.re_Porcen_retencion = item.re_Porcen_retencion;
                    det.re_valor_retencion  = Convert.ToDouble(item.re_valor_retencion);

                    det.re_estado = "A";

                    det.IdUsuario     = item.IdUsuario;
                    det.Fecha_Transac = DateTime.Now;

                    det.nom_pc = item.nom_pc;
                    det.ip     = item.ip;

                    Cp.cp_retencion_det.Add(det);
                }
                Cp.SaveChanges();

                return(true);
            }

            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                mensaje = ex.InnerException + " " + ex.Message;
                throw new Exception(ex.InnerException.ToString());
            }
        }
コード例 #3
0
        public Boolean guardarDB(cp_retencion_Info info)
        {
            Boolean res = true;

            try
            {
                int secuencia = 1;

                using (Entities_cuentas_por_pagar Context = new Entities_cuentas_por_pagar())
                {
                    cp_retencion Entity = 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,
                        serie2           = info.serie2,
                        NumRetencion     = info.NumRetencion,
                        NAutorizacion    = info.NAutorizacion,
                        observacion      = info.observacion,
                        fecha            = Convert.ToDateTime(info.fecha.ToShortDateString()),
                        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,
                        nom_pc           = info.nom_pc,
                        ip = info.ip,
                    };
                    Context.cp_retencion.Add(Entity);

                    foreach (var item in info.detalle)
                    {
                        cp_retencion_det Entity_det = 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"
                        };
                        secuencia++;
                        Context.cp_retencion_det.Add(Entity_det);
                    }

                    Context.SaveChanges();
                }

                return(res);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #4
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)
                    {
                        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;
            }
        }
コード例 #5
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 punto_venta = odata_pto.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta ?? 0);
                            if (punto_venta != null)
                            {
                                info_documento = odata_talonario.GetUltimoNoUsado(info.IdEmpresa, cl_enumeradores.eTipoDocumento.RETEN.ToString(), info.serie1, info.serie2, punto_venta.EsElectronico, true);
                            }

                            contact.serie1       = info.serie1 = info_documento == null ? null : info_documento.Establecimiento;
                            contact.serie2       = info.serie2 = info_documento == null ? null : info_documento.PuntoEmision;
                            contact.NumRetencion = info.NumRetencion = info_documento == null ? null : info_documento.NumDocumento;
                        }
                        //contact.IdPuntoVta = info.IdPuntoVta;
                        contact.IdSucursal      = info.IdSucursal;
                        contact.fecha           = info.fecha;
                        contact.observacion     = info.observacion = info.observacion + info.serie1 + "-" + info.serie2 + "-" + info.NumRetencion;
                        contact.IdUsuarioUltMod = info.IdUsuarioUltMod;
                        contact.Fecha_UltMod    = DateTime.Now;
                        contact.IdUsuarioUltMod = info.IdUsuario;

                        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,
                                                             info.observacion, info.fecha);
                            /*"Comprobante contable de retención #" + info.serie1 + " " + info.serie2 + " " + info.NumRetencion, */
                            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 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 = "modificarDB", IdUsuario = info.IdUsuario
                });
                return(false);
            }
        }