Пример #1
0
        public GeneralResponse DeleteFiscal(DeleteRequest request)
        {
            GeneralResponse response = new GeneralResponse();

            Fiscal fiscal = new Fiscal();

            fiscal = _fiscalRepository.FindBy(request.ID);

            if (fiscal != null)
            {
                // Check if Deletable or not
                if ((int)fiscal.Confirm == 2)
                {
                    response.ErrorMessages.Add("تراکنش مالی مورد نظر قابل حذف نمی باشد. فقط تراکنشهای بررسی نشده قابل حذف هستند.");
                    return(response);
                }
                try
                {
                    _fiscalRepository.Remove(fiscal);
                    _uow.Commit();

                    ////response.success = true;
                }
                catch (Exception ex)
                {
                    response.ErrorMessages.Add(ex.Message);
                }
            }

            return(response);
        }
Пример #2
0
        public FiscalColecao ConsultaFiscal(string Nome)
        {
            try
            {
                FiscalColecao fiscalColecao = new FiscalColecao();
                acessaDadosSQL.LimpaParametros();
                acessaDadosSQL.AdicionaParametros("@Nome", Nome);
                DataTable dataTableFiscal = acessaDadosSQL.ExecutaConsulta(System.Data.CommandType.StoredProcedure, "uspConsultaFiscal");
                foreach (DataRow linha in dataTableFiscal.Rows)
                {
                    Fiscal fiscal = new Fiscal();
                    fiscal.CodFiscal = Convert.ToInt32(linha["CodFiscal"]);
                    fiscal.Nome      = Convert.ToString(linha["NomeFiscal"]);
                    fiscal.Chapa     = Convert.ToInt32(linha["chapa"]);

                    fiscalColecao.Add(fiscal);
                }

                return(fiscalColecao);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Пример #3
0
        public GeneralResponse ChangeCharedStatus(ChargeStatus chargStatus, Guid fiscalID, Guid ModifiedEmployeeID)
        {
            GeneralResponse response = new GeneralResponse();

            try
            {
                Fiscal fiscal = new Fiscal();
                fiscal = _fiscalRepository.FindBy(fiscalID);
                fiscal.ChargeStatus     = chargStatus;
                fiscal.ModifiedDate     = PersianDateTime.Now;
                fiscal.ModifiedEmployee = _employeeRepository.FindBy(ModifiedEmployeeID);

                _fiscalRepository.Save(fiscal);
                _uow.Commit();
            }

            catch (Exception ex)
            {
                response.ErrorMessages.Add(ex.Message);
                if (ex.InnerException != null)
                {
                    response.ErrorMessages.Add(ex.InnerException.Message);
                }
            }

            return(response);
        }
Пример #4
0
        public GetGeneralResponse <FiscalView> GetFollowUpNumber(int FollowNumber)
        {
            GetGeneralResponse <FiscalView> response = new GetGeneralResponse <FiscalView>();

            try
            {
                Infrastructure.Querying.Query query = new Query();
                Criterion criteria = new Criterion("FollowNumber", FollowNumber, CriteriaOperator.Equal);
                query.Add(criteria);

                Fiscal fiscal = _fiscalRepository.FindBy(query).First();

                response.data = fiscal.ConvertToFiscalView();
            }
            catch (Exception ex)
            {
                response.ErrorMessages.Add(ex.Message);
                if (ex.InnerException != null)
                {
                    response.ErrorMessages.Add(ex.InnerException.Message);
                }
            }

            return(response);
        }
Пример #5
0
        private void EnvioInformacoes_Load(object sender, EventArgs e)
        {
            //chama a classe acessa dados
            AcessaDadosSQL acessaDadosSQL = new AcessaDadosSQL();
            //faz uma consulta no banco
            DataTable dataTableMotorista = acessaDadosSQL.ExecutaConsulta(System.Data.CommandType.StoredProcedure, "uspConsultaMotoristaCodigo");

            //insere informações na combobox
            cbbNomeMotorista.DataSource    = dataTableMotorista;
            cbbNomeMotorista.ValueMember   = "CodMotorista";
            cbbNomeMotorista.DisplayMember = "NomeMotorista";
            cbbNomeMotorista.Text          = ("Selecione um motorista");

            //faz uma consulta no banco
            DataTable dataTableFiscal = acessaDadosSQL.ExecutaConsulta(System.Data.CommandType.StoredProcedure, "uspConsultaFiscalCodigo");

            //insere informações na combobox
            Fiscal        fiscal        = new Fiscal();
            FiscalColecao fiscalColecao = new FiscalColecao();

            cbbNomeFiscal.DataSource    = dataTableFiscal;
            cbbNomeFiscal.ValueMember   = "CodFiscal";
            cbbNomeFiscal.DisplayMember = "NomeFiscal";
            cbbNomeFiscal.Text          = ("Selecione um Fiscal");
        }
Пример #6
0
        public async Task <Guid> Fiscal(Guid questionId, Guid choiceId, byte[] fiscalAddress, KeysPair guardianKey)
        {
            var exist = fiscals.SingleOrDefault(o => o.QuestionId == questionId && o.ChoiceId == choiceId && o.Address == fiscalAddress);

            if (exist != null)
            {
                return(exist.Id);
            }

            var fiscal = new Fiscal
            {
                Id         = Guid.NewGuid(),
                QuestionId = questionId,
                ChoiceId   = choiceId,
                Address    = fiscalAddress
            };
            var signer = new Signer(service);

            signer.Sign(fiscal, guardianKey);

            await publisher.Add(fiscal);

            fiscals.Add(fiscal);

            return(fiscal.Id);
        }
Пример #7
0
 public void Broadcast(Fiscal fiscal)
 {
     logger.LogInformation($"Enviando fiscal a {others.Count} pares");
     foreach (var other in others)
     {
         channel.Send(other.PublicUrl, fiscal);
         other.LastActivity = DateTimeOffset.UtcNow;
     }
 }
Пример #8
0
        void btnReporteX_Click(object sender, EventArgs e)
        {
            this.ImpresoraEnUso = true;
            Fiscal f = new Fiscal();

            f.ReporteX();
            f = null;
            this.ImpresoraEnUso = false;
        }
 void barButtonReporteX_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
 {
     try
     {
         Fiscal f = new Fiscal();
         f.ReporteX();
     }
     catch (Exception x)
     {
         MessageBox.Show(x.Message);
     }
 }
Пример #10
0
        private void cboFiscalYear_EditValueChanged(object sender, EventArgs e)
        {
            DataRowView dr = Fiscal.GetDataSourceRowByKeyValue(cboFiscalYear.EditValue) as DataRowView;

            if (Convert.ToInt32(cboFiscalYear.EditValue) > 0)
            {
                FromDate    = Convert.ToDateTime(dr["StartDate"].ToString());
                ToDate      = Convert.ToDateTime(dr["EndDate"].ToString());
                sFiscalYear = dr["FName"].ToString();
                GetPaymentInfo();
            }
        }
Пример #11
0
        void btnReporteZ_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Esta seguro de emitir el reporte Z", "Atencion", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != System.Windows.Forms.DialogResult.Yes)
            {
                return;
            }
            this.ImpresoraEnUso = true;
            Fiscal f = new Fiscal();

            f.ReporteZ();
            f = null;
            this.ImpresoraEnUso = false;
        }
Пример #12
0
        public void Add(Fiscal fiscal)
        {
            lock (semaphore)
            {
                if (pendings.ContainsKey(fiscal.GetKey()))
                {
                    return;
                }

                pendings.Add(fiscal.GetKey(), fiscal);
            }

            Peers.Broadcast(fiscal);
        }
Пример #13
0
        public string ExcluirFiscal(Fiscal fiscal)
        {
            try
            {
                acessaDadosSQL.LimpaParametros();
                acessaDadosSQL.AdicionaParametros("@CodFiscal", fiscal.CodFiscal);

                string Retorno = acessaDadosSQL.ManipulaDados(System.Data.CommandType.StoredProcedure, "uspExcluirFiscal").ToString();
                return(Retorno);
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
 private void ImprimirCorteFiscal()
 {
     try
     {
         this.Guardar();
         Fiscal f = new Fiscal();
         f.ImprimeCorte(mesaAbierta);
         mesaAbierta.Estatus = "IMPRESA";
         db.SaveChanges();
     }
     catch (Exception x)
     {
         Basicas.ManejarError(x);
     }
 }
Пример #15
0
        public void RegistrandoFiscales()
        {
            RegistrandoUrnas();

            var fiscalFrenteDesperar0001 = new Fiscal {
                QuestionId = eleccionId, ChoiceId = espertChoideId, Address = sofia.PublicKey
            };

            signer.Sign(fiscalFrenteDesperar0001, apoderadoFrenteDespertar);
            var fiscalFrenteDesperar5468 = new Fiscal {
                QuestionId = eleccionId, ChoiceId = espertChoideId, Address = santiago.PublicKey
            };

            signer.Sign(fiscalFrenteDesperar5468, apoderadoFrenteDespertar);

            var fiscalJuntosPorElCambio0001 = new Fiscal {
                QuestionId = eleccionId, ChoiceId = macriChoiceId, Address = maria.PublicKey
            };

            signer.Sign(fiscalJuntosPorElCambio0001, apoderadoJuntosPorElCambio);
            var fiscalJuntosPorElCambio5468 = new Fiscal {
                QuestionId = eleccionId, ChoiceId = macriChoiceId, Address = mateo.PublicKey
            };

            signer.Sign(fiscalJuntosPorElCambio5468, apoderadoJuntosPorElCambio);

            var fiscalFrenteDeTodos0001 = new Fiscal {
                QuestionId = eleccionId, ChoiceId = fernandezChoiceId, Address = lucia.PublicKey
            };

            signer.Sign(fiscalFrenteDeTodos0001, apoderadorFrenteDeTodos);
            var fiscalFrenteDeTodos5468 = new Fiscal {
                QuestionId = eleccionId, ChoiceId = fernandezChoiceId, Address = juan.PublicKey
            };

            signer.Sign(fiscalFrenteDeTodos5468, apoderadorFrenteDeTodos);

            var block = blockchain.MineNextBlock(new BlockItem[]
            {
                fiscalFrenteDesperar0001, fiscalFrenteDesperar5468,
                fiscalJuntosPorElCambio0001, fiscalJuntosPorElCambio5468,
                fiscalFrenteDeTodos0001, fiscalFrenteDeTodos5468
            });

            Assert.IsNotNull(block);
            Assert.AreEqual(6, block.Fiscals.Count);
        }
Пример #16
0
        public string InserirFiscal(Fiscal fiscal)
        {
            try
            {
                //Limpeza dos parametros
                acessaDadosSQL.LimpaParametros();
                //Adiciona parametros
                acessaDadosSQL.AdicionaParametros("@Nome", fiscal.Nome);
                acessaDadosSQL.AdicionaParametros("@chapa", fiscal.Chapa);

                string retorno = acessaDadosSQL.ManipulaDados(System.Data.CommandType.StoredProcedure, "uspInserirFiscal").ToString();
                return(retorno);
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
        void barButtonResumenZ_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            FrmLapso lapso = new FrmLapso();

            lapso.ShowDialog();
            if (lapso.DialogResult == System.Windows.Forms.DialogResult.OK)
            {
                try
                {
                    Fiscal f = new Fiscal();
                    // f.ReporteMensualIVA(lapso.desde, lapso.hasta);
                }
                catch (Exception x)
                {
                    MessageBox.Show(x.Message);
                }
            }
        }
Пример #18
0
 public static FiscalDTO ConvertRespondentInfoToDTO(Fiscal fiscal)
 {
     Mapper.CreateMap <Fiscal, FiscalDTO>().ConvertUsing(
         m =>
     {
         return(new FiscalDTO
         {
             FyId = m.FyId,
             FyCurrent = m.FyCurrent,
             FyEndDate = m.FyEndDate,
             FyEndDateNp = m.FyEndDateNp,
             FyName = m.FyName,
             FyStartDate = m.FyStartDate,
             FyStartDateNp = m.FyStartDateNp
         });
     });
     return(Mapper.Map <Fiscal, FiscalDTO>(fiscal));
 }
Пример #19
0
        private void PictureBox3_Click(object sender, EventArgs e)
        {
            if (rdbFiscal.Checked == true)
            {
                //manda uma mensagem caso não tenha nenhum registro selecionado
                if (dgvCliente.SelectedRows.Count <= 0)
                {
                    MessageBox.Show("Selecione um fiscal");
                    return;
                }
                Fiscal FiscalClick = dgvCliente.SelectedRows[0].DataBoundItem as Fiscal;



                //altera as informações
                CadastramentoCliente cadastramentoCliente = new CadastramentoCliente("alterar", FiscalClick, null);
                cadastramentoCliente.ShowDialog();

                //atualiza a data grid view
                AtualizaGrid();
            }
            else
            {
                if (rdbMotorista.Checked == true)
                {
                    //manda uma mensagem caso não tenha nenhum registro selecionado
                    if (dgvCliente.SelectedRows.Count <= 0)
                    {
                        MessageBox.Show("Selecione um Motorista");
                        return;
                    }
                    Motorista MotoClick = dgvCliente.SelectedRows[0].DataBoundItem as Motorista;



                    //altera as informações
                    CadastramentoCliente cadastramentoCliente = new CadastramentoCliente("alterar", null, MotoClick);
                    cadastramentoCliente.ShowDialog();

                    //atualiza a data grid view
                    AtualizaGrid();
                }
            }
        }
Пример #20
0
        private void DuplicarRegistro()
        {
            if (this.bs.Current == null)
            {
                return;
            }
            Factura documento = (Factura)this.bs.Current;

            try
            {
                Fiscal f = new Fiscal();
                f.ImprimeFacturaCopia(documento.Numero);
                f = null;
            }
            catch (Exception x)
            {
                MessageBox.Show(x.Message);
            }
        }
Пример #21
0
        public FiscalColecao ConsultaFiscalNome()
        {
            try
            {
                FiscalColecao fiscalColecao   = new FiscalColecao();
                DataTable     dataTableFiscal = acessaDadosSQL.ExecutaConsulta(System.Data.CommandType.StoredProcedure, "uspConsultaFiscalNome");
                foreach (DataRow linha in dataTableFiscal.Rows)
                {
                    Fiscal fiscal = new Fiscal();
                    fiscal.Nome = Convert.ToString(linha["NomeFiscal"]);

                    fiscalColecao.Add(fiscal);
                }

                return(fiscalColecao);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Пример #22
0
        public CadastramentoCliente(string tipoacao, Fiscal fiscal, Motorista motorista)
        {
            InitializeComponent();
            // cria uma variavel global

            tipoacaoglobal = tipoacao;
            // se o fiscal receber null ele insere os dados se nao ele altera
            if (fiscal == null)
            {
                this.Text = "";
            }
            else
            {
                this.Text            = "Alterar Fiscal";
                txtCod.Text          = fiscal.CodFiscal.ToString();
                txtLogin.Text        = fiscal.Nome;
                txtSenha.Text        = fiscal.Chapa.ToString();
                rdbFiscal.Checked    = true;
                rdbMotorista.Visible = false;
            }



            // se o fiscal receber null ele insere os dados se nao ele altera
            if (motorista == null)
            {
                this.Text = "";
            }
            else
            {
                this.Text            = "Alterar motorista";
                txtCod.Text          = motorista.CodMotorista.ToString();
                txtLogin.Text        = motorista.Nome;
                txtSenha.Text        = motorista.Chapa.ToString();
                rdbMotorista.Checked = true;
                rdbFiscal.Visible    = false;
            }
        }
Пример #23
0
 private void Aceptar_Click(object sender, EventArgs e)
 {
     try
     {
         valeBindingSource.EndEdit();
         registro = (Vale)valeBindingSource.Current;
         FactoryVales.Validar(registro);
         using (var db = new DatosEntities())
         {
             try
             {
                 registro.Fecha    = DateTime.Today;
                 registro.IdVale   = FactoryContadores.GetMax("IdVale");
                 registro.IdCajero = FactoryUsuarios.UsuarioActivo.IdUsuario;
                 registro.Cajero   = FactoryUsuarios.UsuarioActivo.Nombre;
                 registro.Concepto = this.ConceptoTextEdit.Text;
                 registro.Numero   = FactoryContadores.GetMax("NumeroVale");
                 db.Vales.AddObject(registro);
                 db.SaveChanges();
                 Fiscal F = new Fiscal();
                 F.ImprimeVale(registro);
                 F = null;
             }
             catch (Exception x)
             {
                 MessageBox.Show(x.Message);
                 return;
             }
         }
         this.DialogResult = DialogResult.OK;
         this.Close();
     }
     catch (Exception ex)
     {
         MessageBox.Show("Error al validar los datos \n" + ex.Message, "Atencion", MessageBoxButtons.OK);
     }
 }
Пример #24
0
        private void ImprimirComandasPendientes()
        {
            var ComandasAbiertas = (from x in db.MesasAbiertasPlatos
                                    where x.EnviarComanda == "FISCAL"
                                    orderby x.IdMesaAbierta
                                    select x).ToList();

            if (ComandasAbiertas.Count == 0)
            {
                return;
            }
            string comanda = ComandasAbiertas[0].IdMesaAbierta;
            List <MesasAbiertasPlato> porImprimir = new List <MesasAbiertasPlato>();

            foreach (var item in ComandasAbiertas)
            {
                item.EnviarComanda = "FISCALX";
                if (comanda != item.IdMesaAbierta)
                {
                    Fiscal f = new Fiscal();
                    f.ImprimeComanda((from x in db.MesasAbiertas
                                      where x.IdMesaAbierta == item.IdMesaAbierta
                                      select x).FirstOrDefault(), porImprimir);
                    comanda = item.IdMesaAbierta;
                    porImprimir.Clear();
                }
                porImprimir.Add(item);
            }
            db.SaveChanges();
            var    item2 = porImprimir[0];
            Fiscal f2    = new Fiscal();

            f2.ImprimeComanda((from x in db.MesasAbiertas
                               where x.IdMesaAbierta == item2.IdMesaAbierta
                               select x).FirstOrDefault(), porImprimir);
        }
Пример #25
0
        public GetFiscalResponse GetFiscal(GetRequest request)
        {
            GetFiscalResponse response = new GetFiscalResponse();

            try
            {
                Fiscal     fiscal     = new Fiscal();
                FiscalView fiscalView = fiscal.ConvertToFiscalView();

                fiscal = _fiscalRepository.FindBy(request.ID);
                if (fiscal != null)
                {
                    fiscalView = fiscal.ConvertToFiscalView();
                }

                response.FiscalView = fiscalView;
            }
            catch (Exception ex)
            {
                throw;
            }

            return(response);
        }
Пример #26
0
        public GeneralResponse Confirm(ConfirmRequest request)
        {
            GeneralResponse response = new GeneralResponse();

            Fiscal fiscal = new Fiscal();

            fiscal = _fiscalRepository.FindBy(request.FiscalID);
            Customer customer = _customerRepository.FindBy(fiscal.Customer.ID);

            if (fiscal != null)
            {
                try
                {
                    if (fiscal.MoneyAccount.Has9Digits)
                    {
                        if (request.FiscalReciptNumber < 100000000 || request.FiscalReciptNumber > 999999999)
                        {
                            response.ErrorMessages.Add("شماره رسید نمیتواند کمتر از 9 رقم باشد");
                            return(response);
                        }
                    }

                    fiscal.Confirm     = request.Confirm;
                    fiscal.ConfirmDate = PersianDateTime.Now;

                    fiscal.ConfirmedCost   = fiscal.Cost < 0 ? -request.ConfirmedCost : request.ConfirmedCost;
                    fiscal.ConfirmEmployee = _employeeRepository.FindBy(request.ConfirmEmployeeID);

                    if (request.Confirm == ConfirmEnum.Confirmed)
                    {
                        fiscal.SerialNumber = NewSerialNumber(fiscal.MoneyAccount);
                    }

                    #region Check Permission
                    // Check if the Employee can confirm or not
                    if (!fiscal.EmployeesWhoCanConfirm.Contains(fiscal.ConfirmEmployee))
                    {
                        response.ErrorMessages.Add("YouCanNotConfirmThisMoneyAccountKey");
                        return(response);
                    }
                    #endregion

                    #region Check the Cost
                    // Check if (ConfirmCost > Cost) then Rais error
                    if (request.ConfirmedCost > Math.Abs(fiscal.Cost))
                    {
                        response.ErrorMessages.Add("InvalidConfirmCostKey");
                        return(response);
                    }
                    #endregion

                    #region RowVresion Check

                    if (fiscal.RowVersion != request.RowVersion)
                    {
                        response.ErrorMessages.Add("EditConcurrencyKey");
                        return(response);
                    }
                    else
                    {
                        fiscal.RowVersion += 1;
                    }
                    fiscal.AccountingSerialNumber = NewAccountingSerialNumber;

                    #endregion

                    if (customer.Balance < request.ConfirmedCost && fiscal.ConfirmedCost < 0 && request.Confirm == ConfirmEnum.Confirmed)
                    {
                        response.ErrorMessages.Add("مبلغ پرداختی به مشتری بیش از بستانکاری مشتری میباشد");
                        return(response);
                    }

                    #region Change Customer Balance
                    if ((int)request.Confirm != 1 && (int)request.Confirm != 3)
                    {
                        if (fiscal.MoneyAccount.HasUniqueSerialNumber)
                        {
                            Query     query           = new Query();
                            Criterion uniqueCriterion = new Criterion("FiscalReciptNumber", request.FiscalReciptNumber, CriteriaOperator.Equal);
                            query.Add(uniqueCriterion);
                            Criterion uniqueCriterion1 = new Criterion("MoneyAccount.ID", fiscal.MoneyAccount.ID, CriteriaOperator.Equal);
                            query.Add(uniqueCriterion1);
                            IEnumerable <FiscalView> fiscalView = _fiscalRepository.FindByQuery(query).data.ConvertToFiscalViews();
                            if (fiscalView.Count() > 0)
                            {
                                response.ErrorMessages.Add("  این شماره قبلا به  " + fiscalView.FirstOrDefault().CustomerName + " با شماره تلفن " + fiscalView.FirstOrDefault().ADSLPhone + " داده شده است ");
                                return(response);
                            }
                        }

                        fiscal.FiscalReciptNumber = request.FiscalReciptNumber;
                        customer.Balance         += fiscal.ConfirmedCost;
                        long confirmedCost = fiscal.ConfirmedCost == null ? 0 : (long)fiscal.ConfirmedCost;
                        customer.CanDeliverCost += confirmedCost;
                        _customerRepository.Save(customer);
                        if (customer.CanDeliverCost < 0)
                        {
                            response.ErrorMessages.Add(" هشدار ! با انجام این عملیات معین تحویل مشتری منفی میشود. لطفا با برنامه نویس تماس بگیرید");
                            return(response);
                        }
                    }

                    #endregion

                    _fiscalRepository.Save(fiscal);
                    _uow.Commit();
                }
                catch (Exception ex)
                {
                    response.ErrorMessages.Add(ex.Message);
                    if (ex.InnerException != null)
                    {
                        response.ErrorMessages.Add(ex.InnerException.Message);
                    }
                }
            }
            else
            {
                response.ErrorMessages.Add("NoItemToEditKey");
                return(response);
            }

            return(response);
        }
        public void Send(string publicUrl, Fiscal fiscal)
        {
            var url = new Uri(new Uri(publicUrl), "api/fiscal");

            Post(url, JsonSerializer.Serialize(fiscal, JsonDefaultSettings.Options));
        }
 public ObjectResult Post(Fiscal fiscal)
 {
     node.Add(fiscal);
     //var url = Url.Action("Get", new { communityId = fiscal.QuestionId, FiscalId = fiscal.Id });
     return(Accepted(fiscal));
 }
 public void Send(string publicUrl, Fiscal fiscal)
 {
     throw new System.NotImplementedException();
 }
Пример #30
0
        public GeneralResponse AddFiscal(AddFiscalRequest request)
        {
            GeneralResponse response = new GeneralResponse();


            try
            {
                Fiscal fiscal = new Fiscal();
                fiscal.ID             = Guid.NewGuid();
                fiscal.CreateDate     = PersianDateTime.Now;
                fiscal.CreateEmployee = _employeeRepository.FindBy(request.CreateEmployeeID);
                fiscal.Cost           = request.Cost;
                if (request.CustomerID != null && request.CustomerID != Guid.Empty)
                {
                    fiscal.Customer = this._customerRepository.FindBy(request.CustomerID);
                }
                else if (request.Phone != null)
                {
                    fiscal.Customer = _customerRepository.FindByPhoneCode(request.Phone).First();
                }

                fiscal.DocumentSerial = request.DocumentSerial;
                fiscal.DocumentType   = request.DocumentType;
                fiscal.Note           = request.Note;
                fiscal.MoneyAccount   = _moneyAccountRepository.FindBy(request.MoneyAccountID);
                fiscal.InvestDate     = request.InvestDate;
                fiscal.Confirm        = ConfirmEnum.NotChecked;
                fiscal.ChargeStatus   = ChargeStatus.NotChecked;
                fiscal.ForCharge      = request.ForCharge;
                fiscal.FollowNumber   = NewFollowNumber;
                fiscal.RowVersion     = 1;

                #region Validation

                if (fiscal.GetBrokenRules().Count() > 0)
                {
                    foreach (BusinessRule businessRule in fiscal.GetBrokenRules())
                    {
                        response.ErrorMessages.Add(businessRule.Rule);
                    }
                    return(response);
                }

                #endregion

                _fiscalRepository.Add(fiscal);

                _uow.Commit();

                // for retriving FollowNumber
                response.ObjectAdded = _fiscalRepository.FindBy(fiscal.ID).ConvertToFiscalView();
            }
            catch (Exception ex)
            {
                response.ErrorMessages.Add(ex.Message);
                if (ex.InnerException != null)
                {
                    response.ErrorMessages.Add(ex.InnerException.Message);
                    if (ex.InnerException.InnerException != null)
                    {
                        response.ErrorMessages.Add(ex.InnerException.InnerException.Message);
                    }
                }
            }

            return(response);
        }